在部署文件中设定了jdbc引用名jdbc/sample,jndi名字为jdbc/sample

在部署文件中设定了jdbc引用名jdbc/sample,jndi名字为jdbc/sample
如果采用如下代码:
javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("java:comp/env/jdbc/sample");
conn = ds.getConnection();

运行就报错:05-7-1 10:02:24:178 CST] 00000031 SystemErr R Naming-Exception: Exception occurred while the JNDI NamingManager was processing a javax.naming.Reference object.

去掉“java:comp/env/”就好了。

解决:确认部署后在概要表空间下的config/cells/CN7642012HNode01Cell/applications目录下相应应用的web.xml文件下有正确的配置JNDI,如:
<b><resource-ref id="ResourceRef_1097466019938"></b>
<res-ref-name>jdbc/yjjndi</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
再查看同目录下的ibm-web-bnd.xmi文件中id是否和上面的id相同,如下(注意粗体部分):
<b><resRefBindings xmi:id="ResourceRefBinding_1097466019938" jndiName="jdbc/yjjndi" loginConfigurationName="DefaultPrincipalMapping">
<bindingResourceRef href="WEB-INF/web.xml#ResourceRef_1097466019938"/></b>
<properties xmi:id="Property_1165956970219" name="com.ibm.mapping.authDataAlias" value="CN7642012HNode01/yjj2c" description="description"/>
</resRefBindings>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值