2012-04-05 27 views
4

Class.forName("com.mysql.jdbc.Driver")に問題があり、クラスをスローするクラスが見つかりませんでした。例外は、eclipseからwebserviceを実行したときですが、 Javaプロジェクトは完全に実行されます。クラスが見つかりません例外:webserviceのClass.forName( "com.mysql.jdbc.Driver")

私は両方のプロジェクト のビルドパスにmysql-connector-java-5.1.19-bin.jarを追加しますが、Webサービスの問題は何か分かりません。

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"; 
     } 
    } 

と、このエラーログ

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

.warファイルをエクスポートすると、.jarが含まれていますか? – Michael

+0

@ Michaelのコメントは、開発中に展開されたwarファイルを使用するのが良い理由です。そのため、実際に何が表示されているかがわかります。 –

+1

Hardikが正しいです。基本的に問題は、Jarがクラスパスにあるにもかかわらず、サーバーがそれを見つけてアクセスすることができず、それゆえに腹が立つということです。 – Logan

答えて

14

このコードは、あなたのJ2SEで動作する場合、それはあなたがどこか(そうJDBCドライバと呼ばれる)com.mysql.jdbc.Driverクラスを含むJARファイルを持っている必要がありますを意味します。このJARはTomcatで表示する必要があります。だから、mysql-jdbc.jarを実際の場所に、プロジェクトの/WEB-INF/libディレクトリに配置することをお勧めします。

jarが物理的な位置にない場合、これまで何度も私はClassNotFoundExceptionを経験しました。その後Tomcatを再起動する必要があります。

+0

Mishar、あなたの答えはこの問題を解決してくれてありがとう:)) – Basant

+0

web-inf/libとeclipseのWebサービスでこの問題をコピーしてくれてありがとうが、netbeansではjava上でaxis2を使いましたファイル – shareef

+0

偉大な1つの仲間は私の問題を解決する.. – Simmant

関連する問題