这几天一直为tomcat 连接迟的问题而头疼,今天终于解决了。把得到的成果写出来供大家分享,希望以后遇到同样问题的同行能得到我的帮助。
一.去改%tomcat%\conf\tomcat-users.xml,添加admin和manager两个role,一个用户,该用户的role为admin和manager就可以了,按原有的xml复制修改就可以。添加
<user username="admin" password="" roles="manager,admin"/>
二。登陆http://localhost:8080/admin
1点击左边框架中Data Sources菜单项,右边框架出现设置页。
2 从右边框架中右上角的Data Source Actions下拉列表中选择create new data source
|
3 点击右边框架中右上角save按钮
4 点击顶部框架Commit Changes按钮。
三。去%tomcat%\conf\Catalina\localhost目录下修该你的项目的xml文件。我的项目名是studentmanage,所以文件名为studentmanage.xml
其studentmanage.xml文件内容如下:
<?xml version='1.0' encoding='utf-8'?>
<Context displayName="studentmanage" docBase="studentmanage" path="/studentmanage" workDir="work\Catalina\localhost\studentmanage">
<Resource auth="Container" description="Datasource" name="jdbc/sqlserver" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/sqlserver">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=studentmanage</value>
</parameter>
<parameter>
<name>password</name>
<value>sa</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
</ResourceParams>
</Context>
四。重起toncat服务器,用下面例子测试
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<%@ page contentType="text/html;charset=gb2312"%>
<%request.setCharacterEncoding("gb2312");%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
<%
out.print("我的测试开始");
DataSource ds = null;
try{
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
ds = (DataSource) envContext.lookup("jdbc/sqlserver");
out.print("加载数据源成功");
Connection conn = ds.getConnection();
out.print("建立连接");
Statement stmt = conn.createStatement();
//提示:users必须是数据库已有的表,
//这里的数据库前文提及的Data Source URL配置里包含的数据库。
String strSql = " select userId from userLogin";
ResultSet rs = stmt.executeQuery(strSql);
while(rs.next()){
out.print(rs.getInt(1));
}
out.print("我的测试结束");
}
catch(Exception ex){
out.print("出现例外,信息是:"+ex.getMessage());
ex.printStackTrace();
}
%>
</head>
<body>
</body>
</html>