为什么要远程访问这个jndi做为数据源,不讨论。
重要:一定要使用jboss4,我亲测,jboss5有问题,搞了好久都没效。
一、JBoss 端,配置数据源,放入数据库驱动如下
oracle-ds.xml
<?xml version="1.0" encoding="UTF-8"?> <datasources> <local-tx-datasource> <jndi-name>oracleDS</jndi-name> <use-java-context>false</use-java-context> <connection-url>jdbc:oracle:thin:</connection-url> <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <user-name>scott</user-name> <password>tiger</password> <min-pool-size>5</min-pool-size> <max-pool-size>20</max-pool-size> </local-tx-datasource> </datasources>
二、Spring配置文件
spring.xml 片段
<!--jboss jndi 数据源 start -->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>oracleDS</value>
</property>
<property name="expectedType" value="javax.sql.DataSource" />
<property name="resourceRef">
<value>true</value>
</property>
<property name="jndiEnvironment">
<props>
<prop key="java.naming.provider.url">jnp://localhost:1099</prop>
<prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
</props>
</property>
</bean>
三、将jboss4里的jnp-client.jar和jbossall-client.jar放工程lib目录下或tomcat等应用服务器的lib目录下。
四、jnp://localhost:1099中用ip不能访问的情况,jboss需要用加启动动参数:dos 切到bin目录,run -b 0.0.0.0 就可以了。
来自:http://www.lainianxiang.com/?p=13