无法从前缀为jdbc /的java访问weblogic数据源

rao*_*air 9 java weblogic datasource jdbc

我在weblogic中创建了两个数据源,其中包含jndi名称

  • JDBC/testDatasource
  • testDatasource1

我能够使用java访问数据源testDatasource1但是访问数据源jdbc/testDatasource我得到以下提到的错误

javax.naming.NameNotFoundException: While trying to lookup 'jdbc.testDatasource' didn't find subcontext 'jdbc'. Resolved '' [Root exception is javax.naming.NameNotFoundException: While trying to lookup 'jdbc.testDatasource' didn't find subcontext 'jdbc'. Resolved '']; remaining name 'jdbc/testDatasource'
Run Code Online (Sandbox Code Playgroud)

似乎前缀jdbc /给出了问题.

小智 14

在某些情况下,它是由数据源与服务器不在同一目标中引起的.使用数据源的服务器应添加到相同的目标.

  • 是的,这是此错误的最常见原因.导航到:"主页> JDBC数据源摘要> JDBC数据源-0":目标选项卡并将服务器(例如AdminServer)指定为目标 (2认同)

Mic*_*gue 6

可能听起来很愚蠢,但既然它发生在我身上,我就分享一下。

在Weblogic(至少10.3.4)下创建数据源时,不要忘记走一遍整个配置过程(Finish按钮在结束前启用)。

在最后一页上,您将能够访问activate服务器的数据源,而不仅仅是创建它。

要检查您的数据库是否已启动,您可以查看服务器的 JNDI 树。


Sca*_*bat 1

java 是资源的根 JNDI 命名空间。

所以也许你需要

dataSource = (javax.sql.DataSource) context.lookup("java:jdbc/testDatasource");
Run Code Online (Sandbox Code Playgroud)