未找到Websphere WAR文件名异常

时间:2016-08-29 10:24:44

标签: jdbc websphere jndi web.xml

我已将一个WAR文件从Tomcat移动到Websphere。 WAR文件在Tomcat中运行良好,并使用jndi名称连接到数据库。我在websphere中配置了相同的jdbc配置。当我尝试将数据库与应用程序连接时,我收到如下错误:

000000d0 SystemOut     O javax.naming.NameNotFoundException: Name  not found in context "java:".
at com.ibm.ws.naming.ipbase.NameSpace.getParentCtxInternal(NameSpace.java:1969)
at com.ibm.ws.naming.ipbase.NameSpace.retrieveBinding(NameSpace.java:1376)
at com.ibm.ws.naming.ipbase.NameSpace.lookupInternal(NameSpace.java:1219)
at com.ibm.ws.naming.ipbase.NameSpace.lookup(NameSpace.java:1141)
at com.ibm.ws.naming.urlbase.UrlContextImpl.lookupExt(UrlContextImpl.java:1436)
at com.ibm.ws.naming.java.javaURLContextImpl.lookupExt(javaURLContextImpl.java:477)
at com.ibm.ws.naming.java.javaURLContextRoot.lookupExt(javaURLContextRoot.java:485)
at com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:370)
at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161)
at javax.naming.InitialContext.lookup(InitialContext.java:436)
at ConnPoolServlet.getConnection(ConnPoolServlet.java:65)
at ConnPoolServlet.service(ConnPoolServlet.java:25)

您能否建议如何让我的WAR文件与Websphere应用服务器中的jndi名称一起使用?

2 个答案:

答案 0 :(得分:0)

您如何连接到DataSource。您将需要使用InitialContext查找(使用WsInitialNaming,与正确的主体绑定的iiop服务器地址等) 并连接到WAS中的数据源,这与通常在Tomcat上完成的方式略有不同。

另外,您可能还需要执行dumpNamespace以查看是否存在可用于DataSource和连接池以查找和使用的JNDI绑定

答案 1 :(得分:0)

如果没有资源引用直接进行JNDI查找,Tomcat允许使用java:comp/env/前缀直接查找,而WAS则不允许。在jdbc/datasource

中对WAS使用ConnPoolServlet.getConnection(..)(不带前缀)