(求助)为何struts中的连接池用不了??
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)
请问高手,这是为何???谢~~~~~~~