在spring web-app中,我们有一个bean
<bean id="test" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/testRes"/>
</bean>
在glassfish4中将此源声明为jdbc / testRes
这一切都有效但是 如果我们写这样的jndi名字
<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>
请帮忙
答案 0 :(得分:0)
可能你找到了解决方案,但是如果其他人有同样的问题......
尝试添加到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>