tomcat下的JNDI配置

时间:2022-03-14 15:13:21

 jndi(Java Naming and Directory Interface)

Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。

 tomcat配置jndi有全局配置和局部配置。

一:只说全局配置

a):在tomcat的conf文件夹下的context.xml配置文件中加入

<Resource
          auth="Container"
    name="jdbc/awp"
    type="javax.sql.DataSource"    
    driverClassName="com.sybase.jdbc3.jdbc.SybDriver"    
    username="awp"
    password="awpawp"
    url="jdbc:sybase:Tds:10.112.7.19:2639/awpdb"
    maxIdle="2"
    maxWait="5000"
    maxActive="10"/>

b):在项目的web.xml中加入资源引用:

<resource-ref>  
  <description>JNDI DataSource</description>  
  <res-ref-name>jndi/awp</res-ref-name>  
  <res-ref-type>javax.sql.DataSource</res-ref-type>  
  <res-auth>Container</res-auth>  
</resource-ref>  

其中res-ref-name值要和context.xml的name值一致.


还有一些偏题的记录下笔记

DataSource可以交给spring容器管理。可以注入给sessionFactory

applicationContext-at.xml

<bean id="DataSource" class="org.springframework.jndi.JndiObjectFactoryBean">

            <property name="jndiName">

                <value>java:comp/env/jdbc/awp</value>

            </property>

</bean>

使用的IBatis

<!-- 让SqlMapClientFactoryBean支持JDBC事务 -->

<bean id="sqlMapClient"

        class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">

        <property name="configLocation">

            <value>/WEB-INF/ibatis/sql-map-config.xml</value>

        </property>

        <property name="transactionConfigClass"

            ref="transactionConfigClass" />

        <property name="dataSource" ref="DataSource" /><--注入上面的数据源-->

</bean>