java - CWNEN0030E 在 Websphere Liberty 中查找数据源 JNDI 时出错
问题描述
我正在尝试将 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:comp/env/jdbc/db2a 引用的 java.lang.Object 类型的 jdbc/db2a 绑定。
解决方案
配置中有错误。 com.ibm.db2.jcc.DB2Driver
不是javax.sql.DataSource
.
您可以删除配置属性javax.sql.DataSource="com.ibm.db2.jcc.DB2Driver"
并让 Liberty 中的内置知识从 JDBC 驱动程序 jar 中推断出它,或者您可以将其指定为,
javax.sql.DataSource="com.ibm.db2.jcc.DB2DataSource"
上述数据源类名可在此处的 DB2 文档中找到
推荐阅读
- file - 匹配两个文件并打印差异
- java - 为什么我需要“新”作为数组参数?
- c# - .NET CORE 3.1 - [HttpPost] - JSON 值无法转换为 Newtonsoft.Json.Linq.JToken
- javascript - 在什么元素上使用 onkeydown 属性?
- continuous-integration - 是否可以从 Cloud Build 步骤启动 PubSub 模拟器
- three.js - 三. 音频过滤器未使用 linearRampToValueAtTime 加速
- python - Django:通过单击按钮调用视图函数
- python - 如何在 Wordpress 上嵌入交互式 Jupyter Notebook?
- python - 在 Python 中加速成对距离矩阵计算
- javascript - 三个 JS:近距离平面中的奇怪渲染问题