我使用我的weblogic控制台创建了一个JNDI数据源,但是我无法从我的Web应用程序访问该对象.以下是详细信息
在weblogic 10.3.6中,我给出了datasource的JNDI名称: jdbc/mydb
要从我的Web应用程序获取数据库连接,我已在我的Web应用程序中编写了此代码:
Context initContext = new InitialContext();
DataSource ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/mydb");
jndiConnection = ds.getConnection();
Run Code Online (Sandbox Code Playgroud)
之前我使用Tomcat作为服务器,当我在文件中配置资源详细信息时,我能够获得数据库连接tomcat/conf/server.xml,但是当我使用weblogic服务器时,我收到以下错误:
Cannot establish DB connection to JNDI:java:/comp/env/jdbc/mydb While trying to look up /comp/env/jdbc/mydb in /app/webapp/sample.war/1811641702. caused by: javax.naming.NameNotFoundException: While trying to look up /comp/env/jdbc/mydb in /app/webapp/sample.war/1811641702.; remaining name '/comp/env/jdbc/mydb'
Run Code Online (Sandbox Code Playgroud)
我已经尝试了此链接中提到的选项:如何在WebLogic上查找JNDI资源?但我仍然面临着问题.
请让我知道我在哪里做错了,访问JNDI对象的过程是什么.
我可以使用oepe 12.1.1.1.1将我的web-app从Eclipse Indigo 3.7.2发布到Oracle Weblogic 12c(12.1.1)AdminServer
但是,使用oepe 12.1.2.2导入到Eclipse Kepler 4.3.1中的完全相同的web-app无法使用以下(相当完善的例程)异常发布,并且我试图找出原因?...
NameNotFoundException:尝试查找'jdbc.oraclexe'时没有找到子上下文'jdbc'.解决 ''; 剩下的名字'jdbc/oraclexe']; 链接剩余名称:'jdbc/oraclexe'
Weblogic 12c数据源肯定是可用的,我必须假设它正确配置,因为应用程序部署并运行时从Indigo发布没有任何问题.
我还假设applicationContext.xml中的映射,web.xml和weblogic.xml都是正确的,因为从Indigo发布时没有问题.映射如下......
SRC \主\ web应用\ WEB-INF \弹簧\ applicationContext.xml中
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/oraclexe" />
</bean>
Run Code Online (Sandbox Code Playgroud)
SRC \主\ web应用\ WEB-INF\web.xml中
<resource-ref>
<description>Oracle Weblogic Connection Pool (oraclexe)</description>
<res-ref-name>jdbc/oraclexe</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<mapped-name>jdbc/oraclexe</mapped-name>
</resource-ref>
Run Code Online (Sandbox Code Playgroud)
建立\ weboutput\WEB-INF\weblogic.xml中
<resource-description>
<res-ref-name>jdbc/oraclexe</res-ref-name>
<jndi-name>oraclexe</jndi-name>
</resource-description>
Run Code Online (Sandbox Code Playgroud)
我想知道weblogic.xml是否在部署期间不可用(即它没有被复制到src\main\webapp\WEB-INF文件夹)而不是jndiName/resource-ref/res之间的映射问题-ref-name自己?我已经尝试将weblogic.xml直接放在src\main\webapp\WEB-INF文件夹中,但我得到了相同的异常.
我唯一的另一个想法是Indigo oepe 12.1.1.1.1很高兴发布到Weblogic 12.1.1但Kepler oepe 12.1.2不是,我应该发布到Weblogic 12.1.2服务器?