在eclipse里面配置了tomcat 6.0.23之后, 会自动生成一个Servers的工程
里面都是tomcat的配置文件, 可以在这里直接修改配置文件, 而且eclipse的工程也不会打包发布到tomcat安装文件夹中
也就是说, eclipse不会破坏原来的tomcat安装文件夹, 在tomcat目录下的webapps中也看不到你在eclipse下运行的工程
我在配置DataSource的时候, 遇到了这个问题, 现在将配置过程写下来, 给大家提供一个参考
1. 在server.xml中配置DataSource
在eclipse的工程Servers中, 修改配置文件Tomcat v6.0 Server at localhost-config\server.xml, 在<Host>之间添加下面的DataSource配置
<Context docBase="Test" path="/Test"
reloadable="true" source="org.eclipse.jst.jee.server:Test">
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver"
maxActive="8" maxIdle="4" name="jdbc/test" type="javax.sql.DataSource"
url="jdbc:mysql://localhost:3306/test" username="root" password="your password"/>
</Context>
网上很多人说, 需要将mysql的jdbc驱动拷贝到tomcat目录的lib下, 但我在实际操作中发现, 没有必要
注意:
docBase="Test" path="/Test" 必须和你的项目名称一致
name="jdbc/test" 这个名字可以随便改, 之后通过jndi查找DataSource的名字
2. 配置项目中的web.xml, 添加下面配置
<resource-ref>
<description>
Resource reference to a factory for java.sql.Connection
instances that may be used for talking to a particular
database that is configured in the configurartion for the web application.
</description>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3. 写一个测试的jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.*, javax.naming.*, java.sql.*, javax.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>DataSource Demo</title>
</head>
<body>
<%
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/test");
Connection conn = ds.getConnection();
out.println("conncetion Ok<br/>");
Statement stmt = conn.createStatement();
out.println("Executing statement.<br/>");
ResultSet rset = stmt.executeQuery("select * from person");
out.println("Results:<br/>");
int numcols = rset.getMetaData().getColumnCount();
while(rset.next()) {
for(int i=1;i<=numcols;i++) {
out.print("  " + rset.getString(i));
}
out.println("<br/>");
}
conn.close();
%>
</body>
</html>
我这里连接的是mysql的数据库test, 在我的test下有张表是person
运行这个jsp, 可以看到person表中的数据被取出来了
运行结果大概是这样的
conncetion Ok
Executing statement.
Results:
 1 aaa 21 address001
 2 bbb 51 address002
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com