【问题标题】:Websphere WAR file name not found Exception未找到 Websphere WAR 文件名异常
【发布时间】:2016-08-29 10:24:43
【问题描述】:

我已将 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 名称一起使用?

【问题讨论】:

  • 您需要向我们展示ConnPoolServlet.getConnection(..)的代码。您似乎正在尝试查找一些没有名称的资源。消息中的 Namenot found.. 之间应该有您要查找的资源的名称

标签: jdbc websphere jndi web.xml


【解决方案1】:

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

此外,您可能还需要执行 dumpNamespace 以查看是否存在可供数据源和连接池查找和使用的 JNDI 绑定

【讨论】:

  • 你能试试不带前缀的查找吗:jdbc/danone。我假设您在管理控制台中测试了连接并且它可以正常工作
  • 嗨 Ramachandran,问题已通过 java:comp/.. 解决。感谢您的宝贵时间
【解决方案2】:

在没有资源引用的直接 JNDI 查找的情况下,Tomcat 允许使用 java:comp/env/ 前缀直接查找,而 WAS 不允许。在ConnPoolServlet.getConnection(..) 中对WAS 使用jdbc/datasource(不带前缀)

【讨论】:

  • 这完全不正确。 WAS 使用 java:comp/env 进行资源引用,这是访问服务器资源的推荐做法。可能资源引用在应用程序中定义不正确。
  • 对于没有资源参考的直接查找,答案是正确的。该问题指出“WAR 文件在 Tomcat 中运行良好,并使用 jndi 名称连接到数据库”,这表明直接查找的强烈案例。答案不完整,但并非不正确。您能撤消否决票吗?
  • 使该答案完整,并说明如果 Tomcat 用于直接查找,它允许 java:comp 然后我将撤消。就目前的形式而言,它具有误导性且不完整。
猜你喜欢
  • 2019-03-29
  • 2019-06-26
  • 2012-01-06
  • 1970-01-01
  • 1970-01-01
  • 2016-12-03
  • 2019-09-29
  • 2018-02-25
  • 1970-01-01
相关资源
最近更新 更多