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

Posted 霓羽决奕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat,Jboss,Weblogic通过jndi连接数据库相关的知识,希望对你有一定的参考价值。

  1. 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

 

 

  1. 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连接数据库的主要内容,如果未能解决你的问题,请参考以下文章

apache、jboss、tomcat、weblogic、websphere几者的区别和关系,还有运用场景。特别是运用场景。

Tomcat、WebLogic、Websphere、Jboss为啥被称作中间件?应怎么理解?

JBoss Web和 Tomcat的区别

转 : JBoss Web和 Tomcat的区别

中间件

中间件简介