weblogicjndi.properties
jndiName=DataSource jndiUrl=t3://192.168.1.10:7001 jndiInitial=weblogic.jndi.WLInitialContextFactory
applicationContext.xml
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>${jndiName}</value> </property> <property name="resourceRef"> <value>true</value> </property> <property name="jndiEnviroment"> <props> <prop key="java.naming.provider.url">${jndiUrl}</prop> <prop key="java.naming.factory.initial">${jndiInitial}</prop> </props> </property> </bean>
java中使用:
javax.naming.InitialContext ic = new javax.naming.InitialContext(); weblogic.jdbc.common.internal.RmiDataSource dataSource = (weblogic.jdbc.common.internal.RmiDataSource)ic.lookup("DataSource"); Connection conn = dataSource.getConnection(); conn.setAutoCommit(false);
上述方案需要在webproject中加入weblogic.jar,比较麻烦,下面介绍不不要新增jar包的方案:
首先在web.xml文件中加入如下代码(这种方案必须是 J2EE 2.5以上的版本):
<resource-ref> <description>The default DS</description> <res-ref-name>jdbc/shihuanDS</res-ref-name> <res-auth>Container</res-auth> <res-type>javax.sql.DataSource</res-type> <mapped-name>DataSource</mapped-name> <!-- 这个必须和你的全局JNDI数据源名称一样 --> </resource-ref>
这一步同上applicationContext.xml
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>${jndiName}</value> </property> <property name="resourceRef"> <value>true</value> </property> <property name="jndiEnviroment"> <props> <prop key="java.naming.provider.url">${jndiUrl}</prop> <prop key="java.naming.factory.initial">${jndiInitial}</prop> </props> </property> </bean>
java中使用:
javax.naming.InitialContext ic = new javax.naming.InitialContext(); javax.sql.DataSource dataSource = (javax.sql.DataSource)ic.lookup("java:comp/env/jdbc/shihuanDS"); Connection conn = dataSource.getConnection(); conn.setAutoCommit(false);
http://f543711700.iteye.com/blog/1173618