javax.naming.NameNotFoundException:无法解析'MyDB'.已解决''Weblogic 12.1.3.C

Dun*_*ken 9 java jndi weblogic12c

从Tomcat迁移到Weblogic 12.1.3时,我遇到了这个异常,javax.naming.namenotfoundexception while trying to look up 然后我尝试了以下内容: NameNotFoundException:仅在从Eclipse Kepler发布而不是Indigo 以及 如何访问weblogic 10.3中定义的JNDI数据源时尝试查找'jdbc' . 6

我现在得到了标题错误

我的查找代码

ds = (DataSource) initContext.lookup("MyDB");
Run Code Online (Sandbox Code Playgroud)

在weblogic JNDI名称中

MyDB
Run Code Online (Sandbox Code Playgroud)

有什么帮助吗?

kiw*_*ron 28

与Tomcat不同,weblogic创建多个服务器(通常是管理服务器,另外还有一个其他服务器).必须为每个服务器分配数据源.在群集环境中,您需要将数据源应用于群集服务器.

  1. 登录Weblogic控制台,检查数据源JNDI名称(不要将其与数据源名称混淆,这纯粹是为了让控制台列表看起来很漂亮).JNDI名称应该类似于jdbc/MyDB
  2. 检查数据源" 目标"选项卡,并确保将其应用于要将Web应用程序部署到的服务器/群集.
  3. 重启Weblogic.我发现数据源在应用程序代码可见之前有时需要它.
  4. 将Web应用程序部署到正确的服务器/群集.

您应该正常连接到数据源.我总是使用Spring JNDI bean,所以我无法使用确切的语法.@Maas的建议看起来不错.

  • 我发现必须在Targets选项卡上检查AdminServer.当我配置Weblogic时,这对我来说并不直观. (9认同)
  • 男人,我们在这里浪费了几个小时.确实必须检查AdminServer.谢谢CodeChops. (3认同)