[求助]烦了,配tomcat的jndi老是有问题
在test.jsp里可以成功连数据库的,证明jdbc driver是没有问题的。<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url ="jdbc:mysql://localhost/bbs?user=root&password=111111&useUnicode=true&characterEncoding=GB2312" ;
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement();
String query="select userName from tuser";
ResultSet rs=stmt.executeQuery(query);
while(rs.next())
{
String s=rs.getString("userName");//看准你的字段是不是字符型,不然就不能用getString,根据字段类使用getBoolean等等
out.print(s+"<br>");
}
rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
楼主把连接池配置写在server.xml文件里不太适合(这个方法就等同于在tomcat的admin里面配置),我觉得。我以前也这么写的,后来看了csdn一个网友文章,用另外一个方法去做。
具体方法:https://www.gdutbbs.com/viewthread.php?tid=31615 <?xml version='1.0' encoding='utf-8'?>
<Context docBase="你的工作目录" path="/虚拟路径名" reloadable="true" workDir="临时工作区,建议随便建个目录">
<Resource name="jdbc/mysql" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mysql">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/dataname?useUnicode=true&characterEncoding=UTF-8</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
</ResourceParams>
</Context>
[ Last edited by wool王 on 2005-6-12 at 21:43 ] <?xml version="1.0" encoding="ISO-8859-1"?>
<web-app>
<resource-ref>
<description>connectDB</description>
<res-ref-name>jdbc/sqlserver</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app> 把4楼的文件起名“工作目录名.xml”放到tomcat目录下的\conf\Catalina\localhost中就可以了。
ps:这里“工作目录名”是你的工作区名,比如你的工作区在e:/xx/aaa的话这里工作目录名就是aaa。 另外说下,你这个提示:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
是说JDBC驱动的问题哦,但你直接连接又可以。比较郁闷。而且我看你那样配置好像也没问题的。
你的驱动是什么版本的?我用mysql网站上提供的3.1版本按照我那个方法连接成功。 谢谢wool.
楼主把连接池配置写在server.xml文件里不太适合(这个方法就等同于在tomcat的admin里面配置),我觉得。
这个我知道,这样就像硬编码一样,我试过写在\conf\Catalina\localhost\dbtest.xml不行才这样连的。
mysql driver是3.1.8a hjack在 2005-6-12 22:32 发表:
谢谢wool.
这个我知道,这样就像硬编码一样,我试过写在\conf\Catalina\localhost\dbtest.xml不行才这样连的。
mysql driver是3.1.8a
刚才又去mysql网站上下载了新的驱动,替换掉我以前那个。3.1.8a是最新的了。我这边的还是没问题。
ps你成功了么? 正在试。。。 加油。。。
如果不行再共同探讨下。 郁闷呀,还是不行,还是那个org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' 你拷贝多份jdbc驱动到WEB-INF/lib下试试。 暂时还不知道是什么问题。。 无理由呀。。。
我的tomcat是5.5.9
jdk是1.5.0
会不会关这个事呀??? 啊周又来这边吹水。 hjack在 2005-6-12 23:31 发表:
无理由呀。。。
我的tomcat是5.5.9
jdk是1.5.0
会不会关这个事呀???
哦。。。估计跟这个有关。。。
我测试环境系tomcat4.0.28,,,jdk1.4.2。。。
去google下系埋这个问题。。。
一齐啦,找到原因就贴出来分享下。。。 真的是tomcat的问题呀。
我从apache那里下了个tomcat4.1.3试了一下,得左啦。
tomcat5真的有bug呀。 ^_^TOMCAT5 系列真的很有问题~~~
在4.1下用<@pageconten=****>的
在5系列一定要用<@ page language=java conten= ***>才行~
还有一些中文显示问题~
楼主说的问题等。。。 启动tomcat4.1后出现以下错误,到底是那个xml的web-app出问题呀?除了工作目录下的WEB-INF/web.xml里用到web-app元素外,其它地方都没有改动它呀。
2005-6-13 15:13:52 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
Starting service Tomcat-Standalone
Apache Tomcat/4.1.31
2005-6-13 15:13:54 org.apache.commons.digester.Digester error
严重: Parse Error at line 2 column 10: Document root element "web-app", must mat
ch DOCTYPE root "null".
org.xml.sax.SAXParseException: Document root element "web-app", must match DOCTY
PE root "null".
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Un
known Source)
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.rootElementSpecified(Unkno
wn Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.handleStartElement(Unknown
Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Sourc
e)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElemen
t(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanR
ootElementHook(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContent
Dispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
known Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1548)
at org.apache.catalina.startup.ContextConfig.applicationConfig(ContextCo
nfig.java:220)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:57
9)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfi
g.java:181)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.java:119)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3
523)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:707)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:316
)
at org.apache.catalina.core.StandardService.start(StandardService.java:4
50)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:214
3)
at org.apache.catalina.startup.Catalina.start(Catalina.java:463)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
at org.apache.catalina.startup.Catalina.process(Catalina.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)
2005-6-13 15:13:54 org.apache.commons.digester.Digester error
严重: Parse Error at line 2 column 10: Document is invalid: no grammar found.
org.xml.sax.SAXParseException: Document is invalid: no grammar found.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Un
known Source)
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.handleStartElement(Unknown
Source)
at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Sourc
e)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElemen
t(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanR
ootElementHook(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContent
Dispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
known Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1548)
at org.apache.catalina.startup.ContextConfig.applicationConfig(ContextCo
nfig.java:220)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:57
9)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfi
g.java:181)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.java:119)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3
523)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:707)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1141)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:316
)
at org.apache.catalina.core.StandardService.start(StandardService.java:4
50)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:214
3)
at org.apache.catalina.startup.Catalina.start(Catalina.java:463)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:350)
at org.apache.catalina.startup.Catalina.process(Catalina.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:156)
2005-6-13 15:13:55 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.util.LocalStrings', returnNull=tru
e
2005-6-13 15:13:55 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.action.ActionResources', returnNul
l=true
2005-6-13 15:13:56 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.webapp.admin.ApplicationResources', retur
nNull=true
2005-6-13 15:13:59 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2005-6-13 15:14:09 org.apache.jk.common.ChannelSocket init
信息: JK2: ajp13 listening on /0.0.0.0:8009
2005-6-13 15:14:09 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/63config=D:\Tomcat 4.1\conf\jk2.properties 而且我把/WEB-INF/web.xml里的web-app元素注释掉了还是有这个问题。