1在spring配置文件applicationContext.xml添加如下代码,注释掉原有JDBC数据源(如果有的话):
//连接本地weblogic JNDI数据源
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <!--启动环境为weblogic下 --> <property name="jndiName"> <value>jdbc/cdcrip</value> </property> <!--启动环境为tomcat下 --> <property name="jndiName"> <value>java:comp/env/jdbc/cdcrip</value> </property> </bean>
2在spring配置远程JNDI时需要如下步骤:
jar:添加jrmpclient.jar否者会启动时会抛异常(不能找到相应的类)
rmi:启动报java.rmi.ConnectException: Connection refused to host:远程IP时需配置服务器端相应操作如下:
在linux上运行了hostname -i命令
显示:127.0.0.1 (如果没有显示,则事先没有配置本地hostname)
于是vi /etc/hosts
修改或新增为192.168.40.222
另外在weblogic启动脚本上添加:
-Djava.rmi.server.hostname=192.168.40.222
//连接调用远程weblogic JNDI数据源
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>jdbc/cdcrip</value> </property> <!--必须配置jndiEnvironment,否者spring无法找到JNDI连接数据源 --> <property name="jndiEnvironment"> <props> <!-- The value of Context.PROVIDER_URL --> <prop key="java.naming.provider.url">t3://远程IP:7001</prop> <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop> <prop key="java.naming.security.principal">weblogic</prop> <prop key="java.naming.security.credentials">weblogic</prop> </props> </property> </bean>