Tomcat下JNDI的两种配置及区别

时间:2022-03-14 15:12:57
Tomcat里以JNDI的方式配置数据源、队列工厂,常用的两种方式配置方式及区别:

1.在context.xml里:
<!--连接工厂定义-->
< Resource  name ="jms/queueConnectionFactory" auth= "Container"
          type =  "com.ibm.mq.jms.MQConnectionFactory" 
          factory = "com.ibm.mq.jms.MQConnectionFactoryFactory"
          description =  "JMS Queue Connection Factory for sending messages"     
          HOST = "192.168.157.94"
          PORT =  "1414" CHAN ="STORE.CONN" TRAN="1" CCSID= "437" 
          QMGR  ="B2CEventQueueMgr" />
<!--队列定义-->
< Resource  name ="jms/requestMDPQueue" auth= "Container" 
          type  ="com.ibm.mq.jms.MQQueue"
          factory =  "com.ibm.mq.jms.MQQueueFactory" 
          description = "JMS Queue for receiving messages from Dialog"
          QU =  "imgtest_request" CCSID ="437" />
< Resource  name ="jms/responseMDPQueue" auth= "Container"
          type =  "com.ibm.mq.jms.MQQueue" 
          factory = "com.ibm.mq.jms.MQQueueFactory"
          description =  "JMS Queue for receiving messages from Dialog" 
          QU = "imgtest_response"
            CCSID= "437" />
<!-- 数据源配置 -->
< Resource  name ="jdbc/uimgDS" auth="Container" 
          type =  "javax.sql.DataSource" maxActive ="20" maxIdle="10"
          maxWait =  "1000" username ="uimg" password="GCtw5llG" 
          driverClassName = "com.ibm.db2.jcc.DB2Driver"
          url =  "jdbc:db2://192.168.157.114:60016/uimgdb:currentSchema=UIMG;"/>
2.在server.xml里:
<!-- 数据源配置 -->
< Resource  name ="jdbc/uimgDS" auth="Container" 
          type =  "javax.sql.DataSource" maxActive ="20" maxIdle="10"
          maxWait =  "1000" username ="uimg" password="GCtw5llG" 
          driverClassName = "com.ibm.db2.jcc.DB2Driver"
          url =  "jdbc:db2://192.168.157.114:60016/uimgdb:currentSchema=UIMG;"/>
这里还要在context.xml中添加资源链接:
< ResourceLink  name ="jdbc/uimgDS" global = "jdbc/uimgDS"type= "javax.sql.DataSource"/>

区别:
按第一种方式在context.xml中添加,这时启动server的时候,是不加载这些资源的,只有在应用第一次访问的时候才会去加载,指定的类的jar包可以放在tomcat的lib目录下,也可以放在classpath里面,都可以找到,如果缺少,则会抛出异常。
按第二种方式在server.xml中添加,
这种方式的配置,会在启动server的时候加载资源,指定的类的jar包必须放在tomcat的lib目录下,如果找不到,则会抛出异常。