日期:2014-05-16  浏览次数:20638 次

【转载】spring通过weblogic配置的jndi实现数据库操作 - [Spring]

spring通过weblogic配置的jndi实现数据库操作 - [Spring]

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://mariosissy.blogbus.com/logs/48042786.html

weblogic:weblogic8.1
数据库:MySql5.0
java:java1.4

1.配置jndi
现在先将weblogic的环境搭建好。先找到自己建立的工程下修改。如我是mydomian工程名。在下面可以找到startweblogic.cmd,编辑此文件找到Set classpath=,为weblogic添加MySql的jar路径。最好放在最前面
set CLASSPATH=C\:mysql.jar;%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%jrelibt.jar;%WL_HOME%serverlibwebservices.jar;%CLASSPATH%

进入weblogic的web控制台。配置服务-》JDBC-》数据源。如果存在连接缓冲池的话,直接将数据源于其关联。都是界面操作就不详细说明了,但是要记住自己给数据源起的jndi的名字。我取名为mysql/zl。

2.配置spring的application.xml
加入所需要的jar包,尤其是weblogic的jar包C:\bea\weblogic81\server\lib中的weblogic.jar文件
以前是通过spring提供的dataSource配置的,现在是得到weblogic的jndi的到datasource
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">??
?<property name="jndiName">
??<value>mysql/zl</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