JNDI数据源配置

 

1.第一步:在Tomcat安装目录下server.xml文件中添加如下<Context>片段

<Context path="/edoc" docBase="edoc" debug="0">

<Resource name="jdbc/edoc" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/edoc">

<parameter>

<name>factory</name>

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>net.sourceforge.jtds.jdbc.Driver</value>

</parameter>

<parameter>

<name>url</name>

<value>jdbc:jtds:sqlserver://127.0.0.1:1433/edoc</value>

</parameter>

<parameter>

<name>username</name>

<value>sa</value>

</parameter>

<parameter>

<name>password</name>

<value>12345678</value>

</parameter>

<parameter>

<name>maxActive</name>

<value>30</value>

</parameter>

<parameter>

<name>maxIdle</name>

<value>60</value>

</parameter>

<parameter>

<name>maxWait</name>

<value>1000</value>

</parameter>

<parameter>

<name>defaultAutoCommit</name>

<value>true</value>

</parameter>

<parameter>

<name>removeAbandoned</name>

<value>true</value>

</parameter>

<parameter>

<name>removeAbandonedTimeout</name>

<value>60</value>

</parameter>

</ResourceParams>

</Context>

或在conf/Catalina/localhost目录下创建文件edoc.xml,文件内容为上述<Context>片段

2.第二步:在Web应用配置文件web.xml中添加如下片段

<resource-ref>

    <res-ref-name>jdbc/edoc</res-ref-name>

    <res-type>javax.sql.DataSource</res-type>

    <res-auth>Container</res-auth>

    <res-sharing-scope>Shareable</res-sharing-scope>

</resource-ref>

其中,<res-ref-name>,<res-type>,<res-auth>元素值须与Tomcat中配置的<Resource>元素属性值保持一致

3.第三步:Web应用引用数据源,如下为通过spring引用

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

  <property name="jndiName">

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

  </property>

</bean>

 

说明:上述测试连接数据库为SQLServer2000 sp3

测试页面:
<%@ page language="java" contentType="text/html; charset=gb2312" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.*"%>
<%@ page import="java.sql.*" %>
<html>
<body>
<%
   DataSource ds = null;
   try{
     Context initCtx = new InitialContext();
     Context envCtx = (Context) initCtx.lookup("java:comp/env");
     ds = (DataSource)envCtx.lookup("jdbc/edoc");
     if(ds!=null){
           out.println("DataSource is OK!");
           Connection cn=ds.getConnection();
                          
           if(cn!=null){
                 out.println("Connection is Ok!");
  }else {
out.println("Get Connection Fail!");
  }
}else{
out.println("Get DataSource Fail!");
  }
   }catch(Exception ne){ 
     ne.printStackTrace();
       out.println(ne.getMessage());
   }
%>
</body>
</html>

 

你可能感兴趣的:(JNDI数据源配置)