【发布时间】:2021-11-08 20:27:14
【问题描述】:
我正在尝试将 WAS 传统 8.5 websphere 配置转换为 websphere liberty 20.x 配置并出现错误。我相信连接设置是正确的,名称是正确的,驱动程序的 jar 文件存在但出现以下错误。
这里基本上是配置。
<dataSource jndiName="jdbc/db2a" type="javax.sql.DataSource">
<jdbcDriver javax.sql.DataSource="com.ibm.db2.jcc.DB2Driver" libraryRef="DB2JCCLib"/>
<properties.db2.jcc driverType="4" databaseName="DB1" serverName="host.name" portNumber="446"/>
</dataSource>
<web-bnd
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://websphere.ibm.com/xml/ns/javaee"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-bnd_1_0.xsd" version="1.0">
<virtual-host name="default_host"/>
<resource-ref name="jdbc/db2a" binding-name="jdbc/db2a"/>
</web-bnd>
...
server.xml 顶部的配置
<!-- Enable features -->
<featureManager>
<feature>appSecurity-2.0</feature>
<feature>jaxrs-2.0</feature>
<feature>jsp-2.3</feature>
<feature>localConnector-1.0</feature>
<feature>jaxws-2.2</feature>
<feature>ldapRegistry-3.0</feature>
</featureManager>
jar文件为:db2jcc4-4.22.29.jar
并作为对该 jar / 类文件的引用。
连接的java代码是标准的jdbc连接:
DriverManager.getConnection(connStr);
还有这个:
InitialContext initialContext = new InitialContext();
Context context = (Context)initialContext.lookup("java:comp/env");
DataSource dataSource = (DataSource)context.lookup(string5);
logger.info((Object)"CVDBBackendHandler.getConnection() out");
return dataSource.getConnection();
错误如下。
根异常是 com.ibm.wsspi.injectionengine.InjectionException:CWNEN0030E:服务器无法获取 java:comp/env/jdbc/db2a 引用的对象实例。异常消息为:CWNEN1003E: 服务器找不到 java.lang.Object 类型的 jdbc/db2a 绑定,用于 java:comp/env/jdbc/db2a 引用。
【问题讨论】:
-
你启用了哪些功能?
-
我在上面贴过,见 featureManager 部分
-
您缺少
jdbc-4.x功能 -
是的,请看下面我的回答。
标签: java db2 websphere websphere-liberty