(求助)为何struts中的连接池用不了??

Strawberry79 2004-03-26 12:51:08
struts-config.xml中配置如下:
<!-- ========== Data Source Configuration ===================== -->
<data-sources>
<data-source key="test" type="org.apache.struts.util.GenericDataSource">
<set-property property="password" value="water" />
<set-property property="minCount" value="10" />
<set-property property="maxCount" value="100" />
<set-property property="user" value="water" />
<set-property property="driverClass" value="oracle.jdbc.driver.OracleDriver" />
<set-property property="description" value="" />
<set-property property="url" value="jdbc:oracle:thin:@10.3.8.48:1521:ORADB" />
<set-property property="readOnly" value="false" />
<set-property property="autoCommit" value="false" />
<set-property property="loginTimeout" value="" />
</data-source>
</data-sources>

Action类中的使用如下:
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
TestpoolForm testpoolForm = (TestpoolForm) form;

DataSource dataSource;
Connection cnn = null;

try
{
//dataSource = getDataSource(request);
dataSource=servlet.findDataSource("test");
cnn = dataSource.getConnection();
// 数据连接已经建立了,你可以做你想做的事情了
}
catch (SQLException e)
{
getServlet().log("处理数据库连接", e);
}
finally
{
// 在finally块里包含这些代码
// 用以保证连接最后会被关闭
try
{
cnn.close();
}
catch (SQLException e)
{
getServlet().log("关闭数据库连接", e);
}
}

return mapping.findForward("success");
}

}

但转到这个action类的时候报错如下:
exception

javax.servlet.ServletException: Servlet.init() for servlet action threw exception
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:209)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:670)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:517)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:575)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
java.lang.Thread.run(Thread.java:536)


root cause

java.lang.NoClassDefFoundError: org/apache/struts/legacy/GenericDataSource
java.lang.ClassLoader.defineClass0(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:502)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1652)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:883)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1332)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1212)
org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:207)
org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:231)
org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:1081)
org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
javax.servlet.GenericServlet.init(GenericServlet.java:256)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:209)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:670)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:517)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:575)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
java.lang.Thread.run(Thread.java:536)

请问高手,这是为何???谢~~~~~~~
...全文
40 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Strawberry79 2004-03-26
  • 打赏
  • 举报
回复
谢谢大师指点,果然是少了struts-legacy.jar,测试已经通过~!
:)结贴
Leemaasn 2004-03-26
  • 打赏
  • 举报
回复
使用Struts1.1的数据源,还必须提供一个
struts-legacy.jar
即:org/apache/struts/legacy/GenericDataSource
它不是自带的。

可到
jakarta.apache.org
下载
yeshucheng 2004-03-26
  • 打赏
  • 举报
回复
javax.servlet.ServletException: Servlet.init() for servlet action threw exception
org.apache.catalina.valves.ErrorReportValve.invoke
这个表示数据没有初始化:
DataSource dataSource;
Connection cnn = null;<-------这个地方错了
数据绑定呢?也没有?:)

Strawberry79 2004-03-26
  • 打赏
  • 举报
回复
顶~~

67,516

社区成员

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

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