Eclipse里配置Ant 组织的Project(3) -- E中配置Tomcat的JNDI
Eclipse里配置Ant 组织的Project(3)接着Eclipse里配置Ant 组织的Project(2)(http://rmn190.iteye.com/admin/blogs/174851)一篇博文,在这篇里我将整理利用Eclipse在Tomcat里JNDI/DataSource.
在整理之前先说下我以前对JNDI的认识,说实话,前些天我对Tomcat里内置的JNDI功能一点也不清楚,只是听说过Tomcat里有这个功能,可怎么用,如何配置一点也没接触过.
这些天经过无数的折磨看了Tomcat的docs后,也就是解压Tomcat后这个路径apache-tomcat-5.5.25/webapps/tomcat-docs里的说明,现在可以说一点问题也没有了.
在这篇的整理中我将用一个新的例子来说明.
Step1,在Eclispe里新建一个Dynamic Web Project,可以命名为JndiT,
Step2,新一个jsp文件,以测试JNID的配置是否成功,内容如下:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import = "javax.sql.DataSource, javax.naming.Context,javax.naming.InitialContext,java.sql.Connection" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
Context initCxt = new InitialContext();
Connection con;
try{
initCxt = (Context)initCxt.lookup("java:comp/env");
DataSource ds = (DataSource)
initCxt.lookup("jdbc/TestDB");
con = ds.getConnection();
System.out.println("Connection: "+con);
}catch(Exception e){
e.printStackTrace();
}
%>
</body>
</html>
Step3,在Eclipse里把JndiT项目里的自动生成的那个web.xml内容改为如下:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
这里将引用待会后面配置的jdbc/TestDB.
Step4,下面看Servers下已配置成的Tomcat v5.5 Server at localhost-config里的server.xml文件.下面通过"Add and Remove Projects"对话框往Tomcat里把刚才新建的项目JndiT添加进来.添加后上面提到的server.xml里会自动生成如下一条:
<Context docBase="JndiT" path="/JndiT" reloadable="true" source="org.eclipse.jst.j2ee.server:JndiT"/>.
我们在这里配置DataSource,把上面那条改为如下:
<Context docBase="JndiT" path="/JndiT" reloadable="true" source="org.eclipse.jst.j2ee.server:JndiT">
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="jnditest" password="123456" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://192.168.5.10:1433;database=jnditest"/>
</Context>
至些配置完成.
右击Tomcat,选择clean,这样JndiT就会自动publish到Eclispe里的内置的Tomcat插件里.这时注意E:\MyTestSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf下的server.xml文件.
我们看到下面自动添加了一条如下配置:
<Context docBase="E:\MyTestSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\JndiT" path="/JndiT" reloadable="true" source="org.eclipse.jst.j2ee.server:JndiT">
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="jnditest" password="123456" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://192.168.5.10:1433;database=jnditest"/>
</Context>
(这里补充一下,我觉得上面修改<Context docBase="JndiT" path="/JndiT" reloadable="true" source="org.eclipse.jst.j2ee.server:JndiT"/>时加的那条在Eclipse里启动Tomcat里好像不起作用,而起作用的是Eclipse里自动生成的那条.)
在浏览器里输入http://127.0.0.1:8080/JndiT/test.jsp,虽然页面上一篇空白,但不必着急,看Eclipse里的Console,下面已有期待已久的输出了:
Connection: jdbc:sqljdbc://, UserName=jnditest, Microsoft SQL Server 2005 JDBC Driver
这个基本的配置OK了.下一篇中,再往里加上Spring对JNDI的支持.
页:
[1]