您的位置:首页 > 运维架构 > Tomcat

Tomcat,Jboss,Weblogic通过jndi连接数据库

2017-04-07 17:57 323 查看
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>可以不添加
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: