我在使用tomcat5.0连接池功能时,得到的conn对象总是为空,真是郁闷,请高人指点。多谢多谢了!!!!
这是我的server.xml
<?xml version='1.0' encoding='utf-8'?>
<server>
<listener classname="org.apache.catalina.mbeans.serverlifecyclelistener"/>
<listener classname="org.apache.catalina.mbeans.globalresourceslifecyclelistener"/>
<globalnamingresources>
<environment name="simplevalue" type="java.lang.integer" value="30"/>
<resource auth="container" description="user database that can be updated and saved" name="userdatabase" type="org.apache.catalina.userdatabase"/>
<resource name="jdbc/hello" type="javax.sql.datasource"/>
<resourceparams name="userdatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.memoryuserdatabasefactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</resourceparams>
<resourceparams name="jdbc/hello">
<parameter>
<name>url</name>
<value>jdbc:oracle:thin@127.0.0.1:1521:jingrui</value>
</parameter>
<parameter>
<name>password</name>
<value>tiger</value>
</parameter>
<parameter>
<name>maxactive</name>
<value>4</value>
</parameter>
<parameter>
<name>maxwait</name>
<value>5000</value>
</parameter>
<parameter>
<name>driverclassname</name>
<value>oracle.jdbc.driver.oracledriver</value>
</parameter>
<parameter>
<name>username</name>
<value>scott</value>
</parameter>
<parameter>
<name>maxidle</name>
<value>2</value>
</parameter>
</resourceparams>
</globalnamingresources>
<service name="catalina">
<connector acceptcount="100" connectiontimeout="20000" disableuploadtimeout="true" port="8080" redirectport="8443" maxsparethreads="75" maxthreads="150" minsparethreads="25">
</connector>
<connector port="8009" protocol="ajp/1.3" protocolhandlerclassname="org.apache.jk.server.jkcoyotehandler" redirectport="8443">
</connector>
<engine defaulthost="localhost" name="catalina">
<host appbase="webapps" name="localhost">
<logger classname="org.apache.catalina.logger.filelogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
</host>
<logger classname="org.apache.catalina.logger.filelogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
<realm classname="org.apache.catalina.realm.userdatabaserealm"/>
</engine>
</service>
</server>
这是我的web.xml加的东东
<?xml version="1.0" encoding="iso-8859-1"?>
<web-app>
<display-name>tiannet web</display-name>
<description>connectdb test</description>
<resource-ref>
<description>db connection</description>
<res-ref-name>jdbc/hello</res-ref-name>
<res-type>javax.sql.datasource</res-type>
<res-auth>container</res-auth>
</resource-ref>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
都是按其文档帮助中进行的,就是不中
这是测试页面
<%@ page contenttype="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<html>
<body>
<%
datasource ds = null;
resultset rs = null;
statement stmt = null;
connection conn = null;
string m_strdriver = "oracle.jdbc.driver.oracledriver", // 驱动字符串
m_strconurl = "jdbc:oracle:thin:"; // 连接字符串
try
{
context initcontext = new initialcontext();
ds = (datasource)initcontext.lookup ("java:comp/env/jdbc/hello");
//注意connectdb的名称和上面一致
conn = ds.getconnection();
out.println("has error here");
stmt = conn.createstatement();
string strsql = " select * from emp"; //test为数据库中的一个表
rs = stmt.executequery(strsql);
if(rs==null){out.println("rs is null");}
else
{out.println("okokok");}
while(rs.next())
{
out.println("hello");
}
}
catch(exception ex)
{
if(conn == null){out.println("conn is null");}
out.println(ex.getmessage());
out.println("has dkjf");
}
finally
{
}
%>
</body>
</html>
闽公网安备 35060202000074号