在spring web-app中,我们有一个bean
<bean id="test" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/testRes"/>
</bean>在glassfish4配置中,这个源代码声明为jdbc/testRes
这都是工作,但是如果我们这样写jndi name
<bean id="test" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/testRes"/>
</bean>它就会停止工作。
这个web应用程序有很多声明jndi的名字,比如java:comp/env/jdbc/testRes,我们需要保持tomcat7和glassfish4的兼容性。
我们如何配置这些名称的映射?
我们已经找到了一个解决方案,但它不起作用
<resource-ref>
<res-ref-name>java:comp/env/jdbc/testRes</res-ref-name>
<jndi-name>jdbc/testRes</jndi-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>请帮帮忙
发布于 2015-03-10 19:24:12
也许你找到了解决方案,但如果其他人也有同样的问题...
尝试添加到resource-ref此行:
<lookup-name>jdbc/testRes</lookup-name>所以看起来是这样的:
<resource-ref>
<res-ref-name>java:comp/env/jdbc/testRes</res-ref-name>
<jndi-name>jdbc/testRes</jndi-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<lookup-name>jdbc/testRes</lookup-name>
</resource-ref>https://stackoverflow.com/questions/24246352
复制相似问题