我正在尝试使用可以使用JNDI注入的DataSource资源配置WebSphere Liberty 17.0.0.2。无论我做什么,我最终都会遇到以下错误:
com.ibm.wsspi.injectionengine.InjectionException:CWNEN0030E:服务器无法获取java:comp / env / jdbc / db2引用的对象实例。异常消息是:CWNEN1006E:服务器无法使用javax.sql.DataSource类型获取jdbc / db2绑定的对象。异常消息是:java.sql.SQLNonTransientException:DSRA4000E:使用库jdbc-library未找到jdbcDriver dataSource [db2] / jdbcDriver [default-0]的有效JDBC驱动程序实现类。 [d:\库\ 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
存档中找到。我错过了什么?
答案 0 :(得分:2)
由于您使用的是IBM i Toolbox JDBC驱动程序而不是DB2 Universal JDBC驱动程序,因此请尝试将True
更改为False
。