如何使用 JNDI DataSource for IBM DB2 配置 WebSphere Liberty?
How do I configure WebSphere Liberty with a JNDI DataSource for IBM DB2?
我正在尝试使用可以使用 JNDI 注入的数据源资源配置 WebSphere Liberty 17.0.0.2。无论我做什么,我都会遇到以下错误:
com.ibm.wsspi.injectionengine.InjectionException: CWNEN0030E: The server was unable to obtain an object instance for the java:comp/env/jdbc/db2 reference. The exception message was: CWNEN1006E: The server was unable to obtain an object for the jdbc/db2 binding with the javax.sql.DataSource type. The exception message was: java.sql.SQLNonTransientException: DSRA4000E: A valid JDBC driver implementation class was not found for the jdbcDriver dataSource[db2]/jdbcDriver[default-0] using the library jdbc-library. [d:\libraries\jtopen_9_3\lib\jt400.jar]
Java代码:
@Resource(name = "jdbc/db2")
private DataSource dataSource;
配置(server.xml):
<library id="jdbc-library">
<fileset dir="d:/libraries/jtopen_9_3/lib" includes="jt400.jar" />
</library>
<dataSource id="db2" jndiName="jdbc/db2">
<jdbcDriver libraryRef="jdbc-library" />
<properties.db2.jcc serverName="..." user="..." password="..." />
</dataSource>
我不知道为什么找不到 com.ibm.as400.access.AS400JDBCDriver
或 com.ibm.as400.access.AS400JDBCDataSource
,因为它们都可以在 jt400.jar
存档中找到。我错过了什么?
由于您使用的是 IBM i Toolbox JDBC 驱动程序而不是 DB2 Universal JDBC 驱动程序,请尝试将 properties.db2.jcc
更改为 properties.db2.i.toolbox
。
我正在尝试使用可以使用 JNDI 注入的数据源资源配置 WebSphere Liberty 17.0.0.2。无论我做什么,我都会遇到以下错误:
com.ibm.wsspi.injectionengine.InjectionException: CWNEN0030E: The server was unable to obtain an object instance for the java:comp/env/jdbc/db2 reference. The exception message was: CWNEN1006E: The server was unable to obtain an object for the jdbc/db2 binding with the javax.sql.DataSource type. The exception message was: java.sql.SQLNonTransientException: DSRA4000E: A valid JDBC driver implementation class was not found for the jdbcDriver dataSource[db2]/jdbcDriver[default-0] using the library jdbc-library. [d:\libraries\jtopen_9_3\lib\jt400.jar]
Java代码:
@Resource(name = "jdbc/db2")
private DataSource dataSource;
配置(server.xml):
<library id="jdbc-library">
<fileset dir="d:/libraries/jtopen_9_3/lib" includes="jt400.jar" />
</library>
<dataSource id="db2" jndiName="jdbc/db2">
<jdbcDriver libraryRef="jdbc-library" />
<properties.db2.jcc serverName="..." user="..." password="..." />
</dataSource>
我不知道为什么找不到 com.ibm.as400.access.AS400JDBCDriver
或 com.ibm.as400.access.AS400JDBCDataSource
,因为它们都可以在 jt400.jar
存档中找到。我错过了什么?
由于您使用的是 IBM i Toolbox JDBC 驱动程序而不是 DB2 Universal JDBC 驱动程序,请尝试将 properties.db2.jcc
更改为 properties.db2.i.toolbox
。