1.配置jndi
現在先將weblogic的環境搭建好,進入weblogic的web控制檯。配置服務-》JDBC-》DataSource。如果存在連接緩衝池的話,直接將數據源於其關聯。都是界面操作就不詳細說明了,但是要記住自己給數據源起的jndi的名字。我取名爲jndi_OraFtp。
2.配置spring的application.xml,以前是通過spring提供的dataSource配置的,現在是得到weblogic的jndi的到datasource
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>jndi_OraFtp</value>
</property>
<!-- 如果你不想使用 'java:comp/env/'前綴的話請設置下面的值爲true, 默認值爲false -->
<property name="resourceRef">
<value>false</value>
</property>
<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>
</bean>
注意在設置的時候由於不在同一個jvm裏面,所以一定要設置provider.url和factory.initial的屬性值,否則會出現NoInitialContextException的異常出現. 此外如果和其他的應用服務器集成的話可能不只是要設置上面的兩個屬性,還要設置相關的其他屬性。詳細情況參考:javax.naming.Context類的說明文檔。
http://java.sun.com/j2se/1.4.2/docs/api/javax/naming/Context.html
以下是各種應用服務器的不同的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