工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 2995|回复: 41

[求助]烦了,配tomcat的jndi老是有问题

[复制链接]
发表于 2005-6-12 19:07 | 显示全部楼层 |阅读模式
在test.jsp里可以成功连数据库的,证明jdbc driver是没有问题的。

  1. <%@ page contentType="text/html;charset=gb2312"%>   
  2. <%@ page import="java.sql.*"%>
  3. <html>
  4. <body>
  5. <%
  6. Class.forName("com.mysql.jdbc.Driver").newInstance();
  7. String url ="jdbc:mysql://localhost/bbs?user=root&password=111111&useUnicode=true&characterEncoding=GB2312" ;
  8. Connection conn= DriverManager.getConnection(url);
  9. Statement stmt=conn.createStatement();
  10. String query="select userName from tuser";
  11. ResultSet rs=stmt.executeQuery(query);
  12. while(rs.next())
  13. {
  14.         String s=rs.getString("userName");//看准你的字段是不是字符型,不然就不能用getString,根据字段类使用getBoolean等等
  15.         out.print(s+"<br>");
  16. }
  17. rs.close();
  18. stmt.close();
  19. conn.close();
  20. %>
  21. </body>
  22. </html>

  23.   
复制代码
发表于 2005-6-12 21:37 | 显示全部楼层
楼主把连接池配置写在server.xml文件里不太适合(这个方法就等同于在tomcat的admin里面配置),我觉得。我以前也这么写的,后来看了csdn一个网友文章,用另外一个方法去做。

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

使用道具 举报

发表于 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 ]
回复

使用道具 举报

发表于 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>
回复

使用道具 举报

发表于 2005-6-12 21:46 | 显示全部楼层
把4楼的文件起名“工作目录名.xml”放到tomcat目录下的\conf\Catalina\localhost中就可以了。

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

使用道具 举报

发表于 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版本按照我那个方法连接成功。
回复

使用道具 举报

 楼主| 发表于 2005-6-12 22:32 | 显示全部楼层
谢谢wool.

楼主把连接池配置写在server.xml文件里不太适合(这个方法就等同于在tomcat的admin里面配置),我觉得。

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

使用道具 举报

发表于 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你成功了么?
回复

使用道具 举报

 楼主| 发表于 2005-6-12 22:44 | 显示全部楼层
正在试。。。
回复

使用道具 举报

发表于 2005-6-12 22:55 | 显示全部楼层
加油。。。

如果不行再共同探讨下。
回复

使用道具 举报

 楼主| 发表于 2005-6-12 23:01 | 显示全部楼层
郁闷呀,还是不行,还是那个org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
回复

使用道具 举报

发表于 2005-6-12 23:20 | 显示全部楼层
你拷贝多份jdbc驱动到WEB-INF/lib下试试。
回复

使用道具 举报

发表于 2005-6-12 23:28 | 显示全部楼层
暂时还不知道是什么问题。。
回复

使用道具 举报

 楼主| 发表于 2005-6-12 23:31 | 显示全部楼层
无理由呀。。。
我的tomcat是5.5.9
jdk是1.5.0
会不会关这个事呀???
回复

使用道具 举报

发表于 2005-6-12 23:32 | 显示全部楼层
啊周又来这边吹水。
回复

使用道具 举报

发表于 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下系埋这个问题。。。

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

使用道具 举报

 楼主| 发表于 2005-6-13 15:12 | 显示全部楼层
真的是tomcat的问题呀。

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

tomcat5真的有bug呀。
回复

使用道具 举报

发表于 2005-6-13 15:18 | 显示全部楼层
^_^TOMCAT5 系列真的很有问题~~~
在4.1下用<@page  conten=****>的
在5系列一定要用<@ page language=java conten= ***>才行~
还有一些中文显示问题~
楼主说的问题等。。。
回复

使用道具 举报

 楼主| 发表于 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/63  config=D:\Tomcat 4.1\conf\jk2.properties
回复

使用道具 举报

 楼主| 发表于 2005-6-13 15:33 | 显示全部楼层
而且我把/WEB-INF/web.xml里的web-app元素注释掉了还是有这个问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-6-5 04:17

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表