hjack 发表于 2005-6-12 19:07

[求助]烦了,配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>

wool王 发表于 2005-6-12 21:37

楼主把连接池配置写在server.xml文件里不太适合(这个方法就等同于在tomcat的admin里面配置),我觉得。我以前也这么写的,后来看了csdn一个网友文章,用另外一个方法去做。

具体方法:https://www.gdutbbs.com/viewthread.php?tid=31615

wool王 发表于 2005-6-12 21:40

<?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&amp;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 ]

wool王 发表于 2005-6-12 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>

wool王 发表于 2005-6-12 21:46

把4楼的文件起名“工作目录名.xml”放到tomcat目录下的\conf\Catalina\localhost中就可以了。

ps:这里“工作目录名”是你的工作区名,比如你的工作区在e:/xx/aaa的话这里工作目录名就是aaa。

wool王 发表于 2005-6-12 21:54

另外说下,你这个提示:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
是说JDBC驱动的问题哦,但你直接连接又可以。比较郁闷。而且我看你那样配置好像也没问题的。

你的驱动是什么版本的?我用mysql网站上提供的3.1版本按照我那个方法连接成功。

hjack 发表于 2005-6-12 22:32

谢谢wool.


楼主把连接池配置写在server.xml文件里不太适合(这个方法就等同于在tomcat的admin里面配置),我觉得。
这个我知道,这样就像硬编码一样,我试过写在\conf\Catalina\localhost\dbtest.xml不行才这样连的。
mysql driver是3.1.8a

wool王 发表于 2005-6-12 22:37

hjack在 2005-6-12 22:32 发表:

谢谢wool.


这个我知道,这样就像硬编码一样,我试过写在\conf\Catalina\localhost\dbtest.xml不行才这样连的。
mysql driver是3.1.8a

刚才又去mysql网站上下载了新的驱动,替换掉我以前那个。3.1.8a是最新的了。我这边的还是没问题。

ps你成功了么?

hjack 发表于 2005-6-12 22:44

正在试。。。

wool王 发表于 2005-6-12 22:55

加油。。。

如果不行再共同探讨下。

hjack 发表于 2005-6-12 23:01

郁闷呀,还是不行,还是那个org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'

wool王 发表于 2005-6-12 23:20

你拷贝多份jdbc驱动到WEB-INF/lib下试试。

joe_233 发表于 2005-6-12 23:28

暂时还不知道是什么问题。。

hjack 发表于 2005-6-12 23:31

无理由呀。。。
我的tomcat是5.5.9
jdk是1.5.0
会不会关这个事呀???

wool王 发表于 2005-6-12 23:32

啊周又来这边吹水。

wool王 发表于 2005-6-12 23:35

hjack在 2005-6-12 23:31 发表:

无理由呀。。。
我的tomcat是5.5.9
jdk是1.5.0
会不会关这个事呀???

哦。。。估计跟这个有关。。。

我测试环境系tomcat4.0.28,,,jdk1.4.2。。。

去google下系埋这个问题。。。

一齐啦,找到原因就贴出来分享下。。。

hjack 发表于 2005-6-13 15:12

真的是tomcat的问题呀。

我从apache那里下了个tomcat4.1.3试了一下,得左啦。

tomcat5真的有bug呀。

joe_233 发表于 2005-6-13 15:18

^_^TOMCAT5 系列真的很有问题~~~
在4.1下用<@pageconten=****>的
在5系列一定要用<@ page language=java conten= ***>才行~
还有一些中文显示问题~
楼主说的问题等。。。

hjack 发表于 2005-6-13 15:28

启动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

hjack 发表于 2005-6-13 15:33

而且我把/WEB-INF/web.xml里的web-app元素注释掉了还是有这个问题。
页: [1] 2 3
查看完整版本: [求助]烦了,配tomcat的jndi老是有问题