2012-04-05 7 views
4

Ich habe ein Problem und brauche Hilfe in Class.forName("com.mysql.jdbc.Driver"), die Klasse nicht gefunden Exception werfen, wenn ich Webservice von Eclipse ausführen, aber wenn ich neu erstellen Java-Projekt läuft perfekt.Klasse nicht gefunden Ausnahme Class.forName ("com.mysql.jdbc.Driver") in Webservice

Ich füge die mysql-connector-java-5.1.19-bin.jar im Build-Pfad für beide Projekte , aber ich weiß nicht, was das Problem im Webservice ist.

public String insertOrder(
     int current_id, 
     int table_id) 
     { 
      try { 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con = 
    DriverManager.getConnection("jdbc:mysql://localhost:3306/myhoteldb", "root", "mypassword"); 
     PreparedStatement st = 
    con.prepareStatement("insert into orders(orders.current_id,orders.table_id) values(?,?)"); 
     st.setInt(1, current_id); 
     st.setInt(2, table_id); 

     st.executeUpdate(); 
     } catch (Exception e) { 
     System.out.println(e.getMessage()); 
     } 
     return "record inserted"; 
     } 
    } 

und dies der Fehler

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Unknown Source) 
at pkg.MyServices.insertOrder(MyServices.java:124) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:194) 
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:102) 
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40) 
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114) 
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173) 
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:173) 
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:144) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
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:233) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
at java.lang.Thread.run(Unknown Source) 
+4

Wenn Sie Ihre .war-Datei exportieren, ist die .jar-Datei enthalten? – Michael

+0

@ Michaels Kommentar ist, warum es während des Entwickelns gut ist, explodierte Kriegsdateien zu verwenden, damit Sie sehen können, was tatsächlich da ist. –

+1

Hardik hat Recht. Grundsätzlich besteht das Problem darin, dass der Server, obwohl er im Klassenpfad vorhanden ist, nicht in der Lage ist, ihn zu finden und auf ihn zuzugreifen, und somit die Exception. – Logan

Antwort

14

log Wenn dieser Code in Ihre J2SE funktioniert es bedeutet, dass Sie eine JAR-Datei irgendwo enthält com.mysql.jdbc.Driver Klasse haben müssen (so JDBC-Treiber genannt). Diese JAR muss in Tomcat sichtbar sein. Also, ich würde vorschlagen, mysql-jdbc.jar am physischen Speicherort /WEB-INF/lib Verzeichnis Ihres Projekts zu platzieren.

Viele Male in der Vergangenheit habe ich ClassNotFoundException erlebt, wenn Glas nicht am physischen Standort ist. Dann sollte Tomcat neu starten.

+0

Mishar, Danke für deine Antwort das löse mein Problem :)) vielen Dank für alle – Basant

+0

danke es funktionierte durch Kopieren auf Web-inf/lib und dieses Problem auf Web-Service auf Eclipse, aber auf Netbeans funktionierte es gut, ich benutzte Axis2 auf Java Datei – shareef

+0

großer Bruder lösen mein Problem zu .. – Simmant

Verwandte Themen