Struts通过配置数据源连接数据库产生异常!java.lang.NoSuchMethodError
Struts-config.xml配置情况:使用DB2数据库 数据库名称为:wl
<data-sources>
<data-source key="db2" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="password" value="123" />
<set-property property="username" value="db2admin" />
<set-property property="driverClassName" value="COM.ibm.db2.jdbc.app.DB2Driver" />
<set-property property="url" value="jdbc:db2:wl" />
</data-source>
</data-sources>
Action-->Addaction中代码:
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response){
javax.sql.DataSource datasource;
java.sql.Connection myConnection = null;
java.sql.Statement stmt=null;
//datasource=(javax.sql.DataSource)servlet.getServletContext().getAttribute("db2");
datasource = this.getDataSource(request,"db2");
myConnection=datasource.getConnection();
stmt=myConnection.createStatement();
}catch(Exception sqle){
System.out.println("在连接数据库的时候抛出的异常是:"+sqle.getStackTrace());
}
异常显示:
严重: Servlet.service() for servlet action threw exception
java.lang.NoSuchMethodError: benben.Addaction.getDataSource(Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;)Ljavax/sql/DataSource;
at benben.Addaction.execute(Addaction.java:50)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:53)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:64)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)