那有提示什么错误吗?(常见的不同有)
1。你看一看服务器地址是否配错几种数据库是不同的
2。驱动的位置有没有放错一般是放到了tomcat\common\lib中的(其实无需设环境变量)
3。path="/jdbc" docBase="jdbc" 这两项容易错,你要搞清楚你放文件的路径不要照抄。
1。你看一看服务器地址是否配错几种数据库是不同的
2。驱动的位置有没有放错一般是放到了tomcat\common\lib中的(其实无需设环境变量)
3。path="/jdbc" docBase="jdbc" 这两项容易错,你要搞清楚你放文件的路径不要照抄。
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-datasource-examples-howto.html
里面有详细的介绍
按J2EE标准配置连结池,至少需要改动两个文件 $CATALINA_HOME/conf/server.xml 和 /WEB-INF/web.xml。而tomcat中,所用数据库的驱动可以用jar文件的形式(驱动为zip文件的,改后缀名为jar即可)放在$CATALINA_HOME/common/lib目录下(tomcat会自动加载该目录中jar文件),本例中就是把oracle的JDBC驱动classes12.zip更名为classes12.jar使用的。首先,server.xml在tomcat的安装目录conf目录下,连结池数据源的驱动、URL、用户名、密码,以及此连结产生资源名的等参数都保存在这里。下面就是一个例子:<Context ...> ... <Resource name="jdbc/Test" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/Test"> <parameter> <name>user</name> <value></value> </parameter> <parameter> <name>password</name> <value></value> </parameter> <parameter> <name>driverClassName</name> <value>sun.jdbc.odbc.JdbcOdbcDriver</value> </parameter> <parameter> <name>driverName</name> <value>jdbc:odbc:test</value> </parameter> </ResourceParams> ...</Context>这里有一点大家尤其要注意的是Context中有path和docBase参数,server.xml中默认有一个
<Context path="/examples" docBase="examples" debug="0" reloadable="true">
如果把上面的代码放在这个<Context>之间,那它就是用来设置exmaple中的一个数据连结池资源,其他发布目录包括ROOT目录是无法调用到的。所以测试用的JSP页面也应该放到$CATALINA_HOME/webapps/examples目录下。如果你要在其他目录下发布的话,就应该建立一个相应的<Context>,并设置相应的连结资源。
言归正传,看了上面的代码,很容易理解,此数据库连结池的资源名为jdbc/Test。这个资源名在tomcat启动后根据server.xml中的参数立即生成,JSP和Servlet一般即直接调用了。不过按照J2EE的规范,应该在WEB-INF目录中的web.xml部署文件来实现此资源的调度(也可以将资源名重新映射成为你所需要的名字)。按照前面提到的,应该在examples\WEB-INF目录下的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 server.xml file. </description> <res-ref-name> jdbc/Test </res-ref-name> <res-type> javax.sql.DataSource </res-type> <res-auth> Container </res-auth></resource-ref>完毕后,就可以写测试用的JSP文件了(test.jsp): <%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%> <%
DataSource ds = null;
try{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/Test");
if(ds!=null)
out.println("Connection is OK!");
else
out.println("Fail!");
}catch(Exception ne){ out.println(ne);}
%>把它放到examples目录下即可。然后启动tomcat,输入http://localhost:8080/examples/test.jsp。
如果不成功,请参阅tomcat关于JNDI的文档,再仔细分析一边。
你也可以参考它自带的文档,看仔细点弄~
<Context path="/*" docBase="e:/*" debug="0" reloadable="true" crossContext="true" >
<Resource name="jdbc/*" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/*">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>50</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>100000</value>
</parameter>
<parameter>
<name>username</name>
<value>*</value>
</parameter>
<parameter>
<name>password</name>
<value>*</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://*.*.*.*:1433;DatabaseName=*</value>
</parameter>
</ResourceParams>
</Context>