Spring框架中TOMCAT 的JNDI配备和使用

Spring框架中TOMCAT 的JNDI配置和使用

在Spring框架下,使用Tomcat服务器也想使用JNDI的情况。首先必须安装Tomcat-Admin,这个网上多的是。安装之后就可以登陆http://localhost:8080/admin 界面后,选择Resource , DataSources,下拉菜单,Create New DataSource。进行JNDI的建立操作。具体如下:

      JNDI名称:jdbc/mssql
      DataSource URL:jdbc:jtds:sqlserver://localhost/Northwind。(相应的修改IP和数据库名称)
      JDBC Driver Class:net.sourceforge.jtds.jdbc.Driver
      User Name:sa
      Password:*******(你的数据库密码) 

<!--EndFragment-->

Tomcat服务器的JNDI建立好后。开始建立WEB工程调用的方法设定。

 

1.首先在Eclipse中新建Tomcat服务器的时候,不要双击服务器来更改服务器路径。最好不要更改到Tomcat的安装路径下,来发布工程。

2.修改Eclipse新建的Tomcat服务器的server.xml文件。如下: <!-- Global JNDI resources --> <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">  <GlobalNamingResources>

    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

    <Resource auth="Container" description="User database that can be updated and saved" 
factory="org.apache.catalina.users.MemoryUserDatabaseFactory" 
name="UserDatabase" pathname="conf/tomcat-users.xml" 
type="org.apache.catalina.UserDatabase"/>
    
	<Resource driverClassName="com.mysql.jdbc.Driver" 
maxActive="4" maxIdle="2" maxWait="5000" name="jdbc/mysql" 
password="123456" type="javax.sql.DataSource" 
url="jdbc:mysql://localhost:3306/test" username="andymu"/>
  </GlobalNamingResources>

  <Host appBase="webapps" autoDeploy="true" name="localhost"

 unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">

      <Context docBase="TomcatJndiTest" path="/TomcatJndiTest" 
reloadable="true" source="org.eclipse.jst.j2ee.server:TomcatJndiTest">
      <Resource  
                name="jdbc/mysql"  
                type="javax.sql.DataSource"  
                password="123456"  
                maxIdle="2"  
                maxWait="5000"  
                username="root"  
                maxActive="4"  
                />
      </Context>      
      </Host>
 

 3.在发布的工程下("TomcatJndiTest")的web.xml文件中加入如下的内容:

 

	<resource-ref>
		<res-ref-name>jdbc/mysql</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
		<res-sharing-scope>Shareable</res-sharing-scope>
	</resource-ref>

 4.修改工程的"applicationContext.xml"文件的DataSource部分,如下:

	<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
		<value>jdbc/mysql</value>  
    </property>  
    <!-- 如果你不想使用 'java:comp/env/'前缀的话请设置下面的值为true, 
    默认值为false -->  
    <property name="resourceRef">  
        <value>true</value>  
    </property> 
	</bean>