一. 添加Context配置,在%TOMCAT_HOME%/conf/Catalina/localhost/ 目录下添加文件doom.xml
内容:
<Context path="doom" reloadable="true" docBase="E:/eclipse3.3.1/workspacce/doom/war" workDir="E:/eclipse3.3.1/workspacce/doom/work"> <Resource name="jdbc/lala" auth="Container" type="javax.sql.DataSource" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://10.86.10.65:1433;DatabaseName=ETSM_DB" username="sa" password="000000" maxActive="20" maxIdle="10" maxWait="10000"> </Resource> </Context>
上面的代码是SQLServer2005的连接方式,SQLServer2000和SQLServer2005连接方式有所不同(Driver和url)
SQLServer2005:
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://10.86.10.65:1433;DatabaseName=ETSM_DB"
SQLServer2000:
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:sqlserver://10.86.10.65:1433;DatabaseName=ETSM_DB"
使用SQLServer2000需要升级到SP4。
doom.xml 文件和Tomcat插件对应关系:
(1):doom.xml文件的path项对应插的Context name项。
(2):doom.xml文件的docBase项对应插的Subdirectory to set as web application root(optional)项。/war 是web应用的相对路径,"/"表示具体eclipse工程的根目录
docBase="E:/eclipse3.3.1/workspacce/doom/war" 这个路径可以和插件表示的路径对应上了。
二. 修改web.xml文件,添加如下内容:
<resource-ref> <res-ref-name>jdbc/lala</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref>
三.添加jsp文件,jndi.jsp添加内容:
<%@page import="java.util.*,javax.naming.*,java.sql.*,javax.sql.*"%> <%@page contentType="text/html;charset=UTF-8"%> <% Context ctx = new InitialContext(); String strLookup = "java:comp/env/jdbc/lala"; DataSource ds = (DataSource) ctx.lookup(strLookup); // 或者 // Context envCtx = (Context)ctx.lookup("java:comp/env"); // DataSource ds = (DataSource) envCtx.lookup("jdbc/lala"); Connection con = ds.getConnection(); if (con != null) { out.print("success"); } else { out.print("failure"); } %>
四. 遇到问题:
(1)遇到不可获得连接的异常:java.security.AccessControlException: access denied (java.net.SocketPermission 10.86.10.65:1433 connect,resolve)
解决办法:因为Tomcat是在eclipse中用插件启动的,所以需要修改Tomcat插件选项:将Lanuch Tomcat using Security Manager选项取消掉。