Spring與weblogic jndi集成
雖然spring本身是可以直接使用jndi來進行獲取一些對象,但是在和weblogic集成的時候往往還是容易出
現問題(在web應用的時候出現問題的可能性不大,因為container已經做了很多事情了.)但是在ide或者其
他的應用環境下(不同的jvm的時候),通常找不到provider_url等屬性造成無法找到jndi.
修改配置文件如下:
<!-- 通過jndi的方式來調用datasource,即使不一定是在j2ee環境中也可以正常使用默認情況下,如果
沒有指定,"java:comp/env/"將放在后面jndi名稱前面
-->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>jdbc/myDatasource</value>
</property>
<!-- 如果你不想使用 'java:comp/env/'前綴的話請設置下面的值為true, 默認值為false -->
<property name="resourceRef">
<value>false</value>
</property>
<property name="jndiEnvironment">
<props>
Spring連接weblogic-DataSource錯誤
<!-- 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>
注意在設置的時候由于不在同一個jvm里面,所以一定要設置provider.url和factory.initial的屬性值,否
則會出現NoInitialContextException的異常出現.
此外如果和其他的應用服務器集成的話可能不只是要設置上面的兩個屬性,還要設置相關的其他屬性。詳
細情況參考:javax.naming.Context類的說明文檔。
http://java.sun.com/j2se/1.4.2/docs/api/javax/naming/Context.html
其中設置的:
<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> 實際上就是設置Context初始化的時候設置的Properties屬性。
http://java.mblogger.cn/layout/posts/11849.aspx
=====================================================================
=====================================================================
各種應用服務器的不同的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
posted on 2008-03-01 01:01
阿偉 閱讀(3492)
評論(0) 編輯 收藏 所屬分類:
J2EE