首页 > 代码库 > Tomcat,Jboss,Weblogic通过jndi连接数据库
Tomcat,Jboss,Weblogic通过jndi连接数据库
- 1. Tomcat配置Jndi数据源
1.1在tomcat服务器的lib目录下加入数据库连接的驱动jar包
1.2修改tomcat服务器的conf目录下server.xml配置文件
编辑server.xml文件,添加全局JNDI数据源配置,配置如下:
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
<!--
|- name:表示以后要查找的名称。通过此名称可以找到DataSource,此名称任意更换,但是程序中最终要查找的就是此名称,
为了不与其他的名称混淆,所以使用jdbc/oracle,现在配置的是一个jdbc的关于oracle的命名服务。
|- auth:由容器进行授权及管理,指的用户名和密码是否可以在容器上生效
|- type:此名称所代表的类型,现在为javax.sql.DataSource
|- maxActive:表示一个数据库在此服务器上所能打开的最大连接数
|- maxIdle:表示一个数据库在此服务器上维持的最小连接数
|- maxWait:最大等待时间。10000毫秒
|- username:数据库连接的用户名
|- password:数据库连接的密码
|- driverClassName:数据库连接的驱动程序
|- url:数据库连接的地址
-->
<!--配置MySQL数据库的JNDI数据源-->
<Resource
name="jdbc/mysql"
auth="Container[t1] "
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="tingyun2o13"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.2.129:3306/javatest"/>
</GlobalNamingResources>
1.3在tomcat的conf目录下打开context.xml配置文件.(不存在就创建^_^)
1.3.1配置连接池
<?xml version="1.0" encoding="UTF-8"?>
<!-- The contents of this file will be loaded for each web application -->
<Context>
<!-- Default set of monitored resources. If one of these changes, the -->
<!-- web application will be reloaded. -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<!--配置一个连接池-->
<ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource" /> [t2]
<!--
<ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
-->
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
</Context>
1.4重新启动tomcat,通过jndi访问应用
参考博客:
http://blog.csdn.net/samjustin1/article/details/52265803
http://www.cnblogs.com/xkl520xka/p/5899876.html
- 2. Jboss配置Jndi数据源
2.1 首先将数据库的驱动jar文件拷贝到jboss解压文件后server\default\lib目录里面(比如mysql,oracle,db2等)
2.2 在docs\examples\jca找到mysql-ds.xml将该文件拷贝到server\default\deploy目录下面
2.3 打开mysql-ds.xml可以看到数据的链接配置,根据自己的数据库修改好配置,下面是我自己的配置,大家可以根据自己的数据库,具体进行修改
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>DB2DS</jndi-name>
<use-java-context>false</use-java-context>
<connection-url>jdbc:db2://192.168.2.129:50000/test1</connection-url>
<driver-class>COM.ibm.db2.jdbc.app.DB2Driver</driver-class>
<user-name>db2inst1</user-name>
<password>nbs2o13</password>[t3]
<min-pool-size>0</min-pool-size>
<metadata>
<type-mapping>DB2</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
2.4 配置好后,启动Jboss,打开浏览器,访问http://localhost:8080/jmx-console/,在页面左侧点击jboss.jca,右侧可查看到
name= DB2DS,service=DataSourceBinding
name= DB2DS,service=LocalTxCM
name= DB2DS,service=ManagedConnectionFactory
name= DB2DS,service=ManagedConnectionPool
说明数据源发布成功
启动Jboss,执行测试,发现数据源不能拿到的,但是我们的数据源是发布成功的,查找资料后发现需要在发布的数据源mysql-ds.xml里面加上<use-java-context>false</use-java-context>
然后执行测试,测试可通过,到此JBOSS发布JNDI数据源成功
参考博客:
http://sence-qi.iteye.com/blog/1561750
http://blog.sina.com.cn/s/blog_676015470100oidr.html
[t1]红色为需要配置的信息
[t2]红色为需要配置的信息
[t3]红色为自己要配置的信息
<use-java-context>false</use-java-context>可以不添加
Tomcat,Jboss,Weblogic通过jndi连接数据库