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>(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |