- Java code
public class DbUtil { int i=0,j; String [][]data = new String[3][3]; Connection con = null; ResultSet rs=null; Statement stmt=null; String drivers = "com.sybase.jdbc3.jdbc.SybDriver"; String url = "jdbc:sybase:Tds:dawnspace:5000/Denglu"; public DbUtil(){ try { Class.forName(drivers).newInstance(); con = DriverManager.getConnection(url,"sa",""); stmt = con.createStatement(); } catch(java.lang.Exception e) { e.printStackTrace(); } }}
上面这段程序单独运行可以成功连接到数据库里面,但如果在Action中用就会报错
- Java code
public class DisplayAllAction extends Action{ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ ActionErrors errors = new ActionErrors(); if (!errors.isEmpty()) { saveErrors(request, errors); return (new ActionForward(mapping.getInput())); } HttpSession session = request.getSession(); String[][]data = new String[3][3]; [color=#FF0000]DbUtil db = new DbUtil();[/color]// data = db.displayall(); session.setAttribute(Constants.DISPLAY_ALL, data); return (mapping.findForward(Constants.FORWARD_SUCCESS)); }}
java.lang.ClassNotFoundException: com.sybase.jdbc3.jdbc.SybDriver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1340)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at model.DbUtil.<init>(DbUtil.java:17)
at actions.DisplayAllAction.execute(DisplayAllAction.java:34)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)