如何解决这个错误

ITCHINAIT 2008-05-25 12:13:07
这是在部署的时候tomcat报出的错误?应如何解决呢?

初始化数据源oracleDB1时出现错误?

严重: Initializing application data source oracleDB1
java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa
der.java:1360)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa
der.java:1206)
at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.jav
a:119)
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.
java:145)
at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionSe
rvlet.java:775)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:331)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
java:1161)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.jav
a:806)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ss(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:44
7)
at java.lang.Thread.run(Thread.java:595)

这是一个struts1.2开发的案例,用的是Oracle的数据库,现在将其数据库改为Sql server 2000。但我修改其struts-config.xml中的数据源的配置后还是不成功。其数据库相关操作封装在一个DB.java的bean中,然后再其他的地方调用DB。可我怎么修改都还是不正确,而其他的sql的案例,却能正确的调通。
附件的代码为原orale数据库的代码。而我修改为:
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource" key="oracleDB1">
<set-property property="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
<set-property property="url" value="jdbc:microsoft:sqlserver://127.0.0.1:1433;DataBaseName=BookStore;SelectMethod=cursor" />
<set-property property="maxActive" value="10" />
<set-property property="description" value="sql server 2000" />
<set-property property="username" value="sa" />
<set-property property="password" value="" />
<set-property property="autoCommit" value="true" />
</data-source>
</data-sources>

原来的是:
<data-sources>
<data-source key="oracleDB1" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName"
value="oracle.jdbc.driver.OracleDriver" />
<set-property property="url"
value="jdbc:oracle:thin:@127.0.0.1:1521:ZGYDB" />
<set-property property="maxActive"
value="5"/>
<set-property property="username"
value="jenny"/>
<set-property property="password"
value="888888"/>
<set-property property="autoCommit"
value="true"/>
</data-source>
</data-sources>


oracleDB1只是数据源的标识而也啊,我换了数据库,但数据源的标识可以不用改啥。只需要更改相关的数据库连接的地方的嘛?但我为什么还是不正确呢?
...全文
179 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
deeandvivian 2009-04-22
  • 打赏
  • 举报
回复
收藏!!
Sunksubmarine 2008-05-25
  • 打赏
  • 举报
回复
org.apache.commons.dbcp.BasicDataSource
需要dbcp这个包,tomcat默认是不带的-_-!需要去apache网站下载
下载commons-dbcp-1.2.2.jar和commons-pool-1.3.jar
或者选用其他的DataSource
panxuan 2008-05-25
  • 打赏
  • 举报
回复
楼上3位正解。
老紫竹 2008-05-25
  • 打赏
  • 举报
回复
r: org.apache.commons.pool.impl.GenericObjectPool: method <init>()V not found

1 你没有导入 commons-pool.jar 这个jar
2 看看你的lib下面是不是有许多重复的jar,删掉那些陈旧的
yzsunlight 2008-05-25
  • 打赏
  • 举报
回复
两个包commons-pool.jar和commons-dbcp-1.2.1.jar需要导入!

最好放在你的工程里 的 web-inf/lib 下
同时添加到工程里
Shine_Panda 2008-05-25
  • 打赏
  • 举报
回复
同意ls
可能是你没有引入 相关的jar包。
sql2000 可能还要打 spk3,spk4补丁包。
老紫竹 2008-05-25
  • 打赏
  • 举报
回复
楼上正解。
放到
tomcat/shared/lib 目录或者
WEB-INF/lib 目录均可。
ITCHINAIT 2008-05-25
  • 打赏
  • 举报
回复
在将数据插入到数据库的时候,又出现了这种错误。。。

啥原因呢?

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet.init() for servlet actionServlet threw exception
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:595)


root cause

java.lang.NoSuchMethodError: org.apache.commons.pool.impl.GenericObjectPool: method <init>()V not found
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:795)
org.apache.commons.dbcp.BasicDataSource.setLogWriter(BasicDataSource.java:598)
org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:778)
org.apache.struts.action.ActionServlet.init(ActionServlet.java:331)
javax.servlet.GenericServlet.init(GenericServlet.java:212)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:595)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.

gj_wrxz 2008-05-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 M_song 的回复:]
java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource

不能找到这个类!

两个包commons-pool.jar和commons-dbcp-1.2.1.jar需要引入!
可以放到tomcat的common\lib下!
[/Quote]


正确的
M_song 2008-05-25
  • 打赏
  • 举报
回复
java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource

不能找到这个类!

两个包commons-pool.jar和commons-dbcp-1.2.1.jar需要引入!
可以放到tomcat的common\lib下!

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧