繁体   English   中英

使用JNDI的Spring DataSource配置

[英]Spring DataSource configuration using JNDI

我在Spring applicationContext.xml文件中使用JNDI配置dataSource bean时遇到问题。

这是我的applicationContext.xml条目的样子:

<jee:jndi-lookup id="dataSource" jndi-name="jdbc/myApp" expected-type="javax.sql.DataSource"/>

我在web.xml中输入了一个条目:

<resource-env-ref>
    <resource-env-ref-name>jdbc/myApp</resource-env-ref-name>
    <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
<resource-env-ref>

Tomcat中的Context.xml文件:

<Resource 
    auth="Container" 
    factory="bitronix.tm.resource.ResourceObjectFactory" 
    name="jdbc/myApp" type="javax.sql.DataSource" 
    uniqueName="jdbc/myApp" />

通过这些配置,我不断在Tomcat控制台上收到此错误:

原因:javax.naming.NameNotFoundException:名称[jdbc / myApp]在此上下文中未绑定。 找不到[jdbc]。 在org.apache.naming.NamingContext.lookup(NamingContext.java:819)在org.apache.naming.NamingContext.lookup(NamingContext.java:167)在org.apache.naming.SelectorContext.lookup(SelectorContext.java:156) )在org.springframework.jndi.JndiTemplate $ 1.doInContext(JndiTemplate.java:155)在javax.naming.InitialContext.lookup(InitialContext.java:392)在org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:87) )于org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:152)于org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:179)于org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java: 104),位于org.springframework.jndi.JndiObjectFactoryBean(java.106)的org.springframework.jndi.Jndi.Jndi。 :217)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactor y.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549)

请帮助我解决此问题。 在我看来,Context.xml中的bitronix事务工厂正在引起此问题。

您需要使用不同的jndi名称,因为在Tomcat中,所有已配置的条目和资源都位于JNDI名称空间的java:comp/env部分中,并且还需要指定该名称:

<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/myApp" expected-type="javax.sql.DataSource"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM