Spring與weblogic jndi集成
雖然spring本身是可以直接使用jndi來進(jìn)行獲取一些對(duì)象,但是在和weblogic集成的時(shí)候往往還是容易出
現(xiàn)問題(在web應(yīng)用的時(shí)候出現(xiàn)問題的可能性不大,因?yàn)?/span>container已經(jīng)做了很多事情了.)但是在ide或者其
他的應(yīng)用環(huán)境下(不同的jvm的時(shí)候),通常找不到provider_url等屬性造成無法找到jndi.
修改配置文件如下:
<!-- 通過jndi的方式來調(diào)用datasource,即使不一定是在j2ee環(huán)境中也可以正常使用默認(rèn)情況下,如果
沒有指定,"java:comp/env/"將放在后面jndi名稱前面
-->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>jdbc/myDatasource</value>
</property>
<!-- 如果你不想使用 'java:comp/env/'前綴的話請(qǐng)?jiān)O(shè)置下面的值為true, 默認(rèn)值為false -->
<property name="resourceRef">
<value>false</value>
</property>
<property name="jndiEnvironment">
<props>
Spring連接weblogic-DataSource錯(cuò)誤
<!-- The value of Context.PROVIDER_URL -->
<prop key="java.naming.provider.url">t3://localhost:7001</prop>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory
</prop>
</props>
</property>
</bean>
注意在設(shè)置的時(shí)候由于不在同一個(gè)jvm里面,所以一定要設(shè)置provider.url和factory.initial的屬性值,否
則會(huì)出現(xiàn)NoInitialContextException的異常出現(xiàn).
此外如果和其他的應(yīng)用服務(wù)器集成的話可能不只是要設(shè)置上面的兩個(gè)屬性,還要設(shè)置相關(guān)的其他屬性。詳
細(xì)情況參考:javax.naming.Context類的說明文檔。
http://java.sun.com/j2se/1.4.2/docs/api/javax/naming/Context.html
其中設(shè)置的:
<property name="jndiEnvironment">
<props>
<!-- The value of Context.PROVIDER_URL -->
<prop key="java.naming.provider.url">t3://localhost:7001</prop>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory
</prop>
</props>
</property> 實(shí)際上就是設(shè)置Context初始化的時(shí)候設(shè)置的Properties屬性。
http://java.mblogger.cn/layout/posts/11849.aspx
=====================================================================
=====================================================================
各種應(yīng)用服務(wù)器的不同的properties集合:
websphere:
java.naming.provider.url->iiop://websphere.machine.domain.com:900
java.naming.factory.initial ->com.ibm.websphere.naming.WsnInitialContextFactory
java.naming.factory.url.pkgs ->com.ibm.ws.naming
org.omg.CORBA.ORBClass->com.ibm.rmi.iiop.ORB
org.omg.CORBA.ORBSingletonClass->com.ibm.rmi.corba.ORBSingleton
javax.rmi.CORBA.UtilClass->com.ibm.rmi.javax.rmi.CORBA.Util
javax.rmi.CORBA.StubClass->com.ibm.rmi.javax.rmi.CORBA.StubDelegateImpl
javax.rmi.CORBA.PortableRemoteObjectClass->com.ibm.rmi.javax.rmi.PortableRemoteObject
weblogic:
java.naming.factory.initial -> weblogic.jndi.WLInitialContextFactory
java.naming.provider.url -> t3://localhost:7001
jboss:
ava.naming.factory.initial ->org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs->org.jboss.naming.client
java.naming.provider.url ->jnp://10.0.0.18:1099
sunone IMQ ldap:
java.naming.provider.url -> ldap://localhost:389/dc=yusong,dc=com
java.naming.factory.initial -> com.sun.jndi.ldap.LdapCtxFactory
sunone Application Server:
java.naming.provider.url -> iiop://192.168.0.34:3700
java.naming.factory.initial -> com.sun.jndi.cosnaming.CNCtxFactory
oracle oc4j:
java.naming.factory.initial->com.evermind.server.ApplicationClientInitialContextFactory
java.naming.provider.url->ormi://localhost/bmpapp