CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  应用服务器

[求助]tomcat+struts+mssqlserver2000 不能连接到数据库

楼主basten_chenbin()2004-11-02 23:29:27 在 Java / 应用服务器 提问

tomcat:5.0.28  
  struts:1.2.4  
  mssqlserver2000:sp3  
  mssqlserver   jdbc   driver:sp3  
  我首先把struts包中的struts-blank.war拷贝到了tomcat的webapps目录下,启动tomcat,自动解开struts-blank.war,然后在在浏览器上试了一下,结果成功显示了struts-blank应用的欢迎界面,然后我把jdbc的三个jar文件拷贝到了webapps\struts-blank\WEB-INF\lib目录下,然后在struts-config.xml中配置数据源:  
  <data-sources>  
          <data-source   key="TEST"   type="org.apache.commons.dbcp.BasicDataSource">  
              <set-property   property="driverClassName"  
                      value="com.microsoft.jdbc.sqlserver.SQLServerDriver"   />  
              <set-property   property="url"  
                      value="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=teststruts;SelectMethod=cursor"   />  
              <set-property   property="username"   value="sa"   />  
              <set-property   property="password"   value="password"   />  
              <set-property   property="maxActive"   value="10"   />  
              <set-property   property="maxWait"   value="5000"   />  
              <set-property   property="defaultAutoCommit"   value="false"   />  
              <set-property   property="defaultReadOnly"   value="false"   />  
          </data-source>  
  </data-sources>  
   
   
  然后重新启动tomcat,结果tomcat启动过程中报错:  
   
  信息:   Installing   web   application   at   context   path   /struts-blank   from   URL   file:D:/  
  Tomcat   5.0/webapps/struts-blank  
  2004-11-2   23:04:13   org.apache.struts.action.ActionServlet   initModuleDataSources  
  严重:   Initializing   application   data   source   TEST  
  org.apache.commons.dbcp.SQLNestedException:   Cannot   create   PoolableConnectionFact  
  ory   ([Microsoft][SQLServer   2000   Driver   for   JDBC]Error   establishing   socket.)  
                  at   org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSou  
  rce.java:855)  
                  at   org.apache.commons.dbcp.BasicDataSource.setLogWriter(BasicDataSource.  
  java:598)  
                  at   org.apache.struts.action.ActionServlet.initModuleDataSources(ActionSe  
  rvlet.java:778)  
                  at   org.apache.struts.action.ActionServlet.init(ActionServlet.java:331)  
                  at   javax.servlet.GenericServlet.init(GenericServlet.java:211)  
                  at   org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.  
  java:1029)  
                  at   org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:86  
  2)  
                  at   org.apache.catalina.core.StandardContext.loadOnStartup(StandardContex  
  t.java:4013)  
                  at   org.apache.catalina.core.StandardContext.start(StandardContext.java:4  
  357)  
                  at   org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase  
  .java:823)  
                  at   org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:80  
  7)  
                  at   org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)  
   
                  at   org.apache.catalina.core.StandardHostDeployer.install(StandardHostDep  
  loyer.java:277)  
                  at   org.apache.catalina.core.StandardHost.install(StandardHost.java:832)  
                  at   org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:625  
  )  
                  at   org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:431  
  )  
  )  
                  at   org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)  
                  at   org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java  
  :349)  
                  at   org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl  
  eSupport.java:119)  
                  at   org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)  
   
                  at   org.apache.catalina.core.StandardHost.start(StandardHost.java:789)  
                  at   org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)  
   
                  at   org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478  
  )  
                  at   org.apache.catalina.core.StandardService.start(StandardService.java:4  
  80)  
                  at   org.apache.catalina.core.StandardServer.start(StandardServer.java:231  
  3)  
                  at   org.apache.catalina.startup.Catalina.start(Catalina.java:556)  
                  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:324)  
                  at   org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)  
                  at   org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)  
  Caused   by:   java.sql.SQLException:   [Microsoft][SQLServer   2000   Driver   for   JDBC]Err  
  or   establishing   socket.  
                  at   com.microsoft.jdbc.base.BaseExceptions.createException(Unknown   Source  
  )  
                  at   com.microsoft.jdbc.base.BaseExceptions.getException(Unknown   Source)  
                  at   com.microsoft.jdbc.base.BaseExceptions.getException(Unknown   Source)  
                  at   com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown   Source)  
   
                  at   com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown   Sou  
  rce)  
                  at   com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown   S  
  ource)  
                  at   com.microsoft.jdbc.base.BaseConnection.open(Unknown   Source)  
                  at   com.microsoft.jdbc.base.BaseDriver.connect(Unknown   Source)  
                  at   org.apache.commons.dbcp.DriverConnectionFactory.createConnection(Driv  
  erConnectionFactory.java:37)  
                  at   org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)  
                  at   org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(Bas  
  icDataSource.java:877)  
                  at   org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSou  
  rce.java:851)  
                  ...   31   more  
   
  请教各位老大,这是怎么回事啊? 问题点数:0、回复次数:11Top

1 楼xqi8(星期八)回复于 2004-11-02 23:35:39 得分 0

我也采用这个模式开发,但是一切正常,请把连接代码,程序贴出来看看,我可能能帮你,  
  我是用DAOTop

2 楼kui(kui)回复于 2004-11-03 09:15:24 得分 0

struts:1.2.4   好象不能直接这样用。http://dev.csdn.net/user/kui   《Struts   1.2.1新特点简介(1)   》  
   
  看来上Struts_db开源项目还是有一点点用处。  
  可看看javaweb.getbbs.com的Struts_db开源项目。  
   
  [原创]Struts_DB   0.1版本    
     
     
  Struts_DB车   0.1版本源程序  
  包括如下内容:  
              (1)数据库连接池;  
              (2)Struts   PlugIn插件;  
              (3)Struts   数据连接池服务器文件;  
              (4)Struts数据库中文显示过滤器文件。  
   
  源程序放在网络硬盘上,地址:http://vv.vdisk.cn/login.php  
                                                                                          ID:javaweb  
  源程序文件名:struts_db_src.rar  
   
  编译后生成库文件:struts_db.jar    
  同时还有两个例子。  
     
   
  Top

3 楼kui(kui)回复于 2004-11-03 09:15:24 得分 0

struts:1.2.4   好象不能直接这样用。http://dev.csdn.net/user/kui   《Struts   1.2.1新特点简介(1)   》  
   
  看来上Struts_db开源项目还是有一点点用处。  
  可看看javaweb.getbbs.com的Struts_db开源项目。  
   
  [原创]Struts_DB   0.1版本    
     
     
  Struts_DB车   0.1版本源程序  
  包括如下内容:  
              (1)数据库连接池;  
              (2)Struts   PlugIn插件;  
              (3)Struts   数据连接池服务器文件;  
              (4)Struts数据库中文显示过滤器文件。  
   
  源程序放在网络硬盘上,地址:http://vv.vdisk.cn/login.php  
                                                                                          ID:javaweb  
  源程序文件名:struts_db_src.rar  
   
  编译后生成库文件:struts_db.jar    
  同时还有两个例子。  
     
   
  Top

4 楼kui(kui)回复于 2004-11-03 09:23:07 得分 0

下载《Struts开发实例》地址:  
  http://www.infoxa.com/asp/book/xxnr.asp?id=1333Top

5 楼kui(kui)回复于 2004-11-03 09:23:07 得分 0

下载《Struts开发实例》地址:  
  http://www.infoxa.com/asp/book/xxnr.asp?id=1333Top

6 楼basten_chenbin()回复于 2004-11-03 12:38:49 得分 0

我根本就还没开始写程序,就是配置了那个datasource后tomcat一启动就出现这些错误.  
  有人说com.microsoft.jdbc.sqlserver.SQLServerDriver不能用了,要用什么SQLServerDataSource,不知道是否如此,以前都是用SQLServerDriver的啊Top

7 楼basten_chenbin()回复于 2004-11-03 12:43:05 得分 0

kui兄:  
  你的大作《Struts   1.2.1新特点简介(1)   》早就拜读过了,但是好像没说怎么配置啊,帮忙啊Top

8 楼kui(kui)回复于 2004-11-03 13:33:10 得分 0

http://vv.vdisk.cn/login.php  
  ID:javaweb  
  Struts_db应用模板(使用Servlet).rar    
   
  使用方法1,在web.xml中以servlet加载:  
  <servlet>  
          <servlet-name>dbInit</servlet-name>  
          <servlet-class>javawebstudio.struts_db.DBInitServlet</servlet-class>  
          <init-param>  
              <param-name>driverClass</param-name>  
              <param-value>com.microsoft.jdbc.sqlserver.SQLServerDriver</param-value>  
          </init-param>  
          <init-param>  
              <param-name>jdbcURL</param-name>  
              <param-value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=EDB</param-value>  
          </init-param>  
          <init-param>  
              <param-name>minCount</param-name>  
              <param-value>1</param-value>  
          </init-param>  
          <init-param>  
              <param-name>maxCount</param-name>  
              <param-value>10</param-value>  
          </init-param>  
          <load-on-startup>1</load-on-startup>  
          <init-param>  
              <param-name>user</param-name>  
              <param-value>sa</param-value>  
          </init-param>  
          <init-param>  
              <param-name>password</param-name>  
              <param-value>sa</param-value>  
          </init-param>  
      </servlet>  
   
   
  使用方法2,在struts-config.xml中以PlugIn加载:  
  <plug-in   className="javawebstudio.struts_db.DatabasePlugIn"   >  
                    <set-property   property="driverClass"   value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>  
                    <set-property   property="jdbcURL"   value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=EDB"/>  
                    <set-property   property="minCount"   value="1"/>  
                    <set-property   property="maxCount"   value="10"/>        
                    <set-property   property="user"   value="sa"/>        
                    <set-property   property="password"   value="sa"/>  
            </plug-in   >  
  其用法与《Struts开发实例》中数据库应用的例子完全一样。Top

9 楼basten_chenbin()回复于 2004-11-03 15:58:41 得分 0

谢谢kui,回去试试再来Top

10 楼basten_chenbin()回复于 2004-11-03 16:18:09 得分 0

顺便问一下kui,用PlugIn方式有什么好处啊,和直接在struts-config.xml中配置相比Top

11 楼basten_chenbin()回复于 2004-11-03 21:58:27 得分 0

问题找到了!  
  我的sqlserver的端口号不知道为什么成了1139,而不是1433。  
  奇怪,我是缺省安装的,而且肯定没有改过。  
   
  不过还是请教kui,如果配置在struts-config.xml,是否任何地方要使用数据源,都必须用Action的getDataSource方法得到connetion?Top

相关问题

  • jsp+tomcat+struts下怎么实现联动?和数据库关联
  • struts中连接数据库
  • struts中连接数据库
  • B/S结构的系统(tomcat,Struts),如何实现对数据库操作时候的事务处理?
  • 如何在tomcat 4.1下使用easy struts的easy datasource连接sybase数据库?多谢各位大虾!
  • 关与struts,数据库中数据库修改
  • struts数据库连接池的问题
  • SOS:Struts数据库国际化问题
  • struts连接数据库问题
  • STRUTS读取数据库问题

关键词

  • .net
  • sqlserver2000
  • struts
  • 数据库
  • 开源
  • mssqlserver
  • 连接
  • 文件
  • jdbc
  • tomcat

得分解答快速导航

  • 帖主:basten_chenbin

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo