2014-06-16 47 views
0

在春天web應用程序,我們在glassfish4配置一個beanglassfish4 +彈簧JNDI名稱java:comp/env的/ JDBC/

<bean id="test" class="org.springframework.jndi.JndiObjectFactoryBean"> 
    <property name="jndiName" value="jdbc/testRes"/> 
</bean> 

這個源聲明爲JDBC/testRes

這一切都工作,但 如果我們寫JNDI名稱這樣

<bean id="test" class="org.springframework.jndi.JndiObjectFactoryBean"> 
     <property name="jndiName" value="java:comp/env/jdbc/testRes"/> 
    </bean> 

它停止工作。

這個網絡應用程序有許多聲明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

也許你找到解決辦法,但如果其他人是否有同樣的問題...

嘗試添加to resource-ref this line:

<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>