2016-05-06 17 views
0
への接続に失敗した

Javaサーブレットでの私のコードです。同じコードは標準のJavaクラスでは動作しますが、サーブレットでは失敗します。私はどこに問題があるのか​​分からないのですか?助けてください。ここでJavaサーブレットは、MySQL

あなたはこのよう行うことができます。..

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
quiz.QuestionsPreparer.prepareQuestions(QuestionsPreparer.java:81) 
quiz.QuestionsPreparer.doPost(QuestionsPreparer.java:42) 
quiz.QuestionsPreparer.doGet(QuestionsPreparer.java:36) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:624) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:731) 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436) 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078) 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
java.lang.Thread.run(Unknown Source) 
+1

スタックトレース全体を印刷し、質問を編集して追加します。 FWIW、私はあなたのWARファイルにmysqlドライバのJARファイルを含めていないという問題があると思います。 –

+0

full stacktraceもcom.mysql.jdbc.Driverを出力します –

+0

これは完全なスタックトレースではありません。それはちょうどエラーメッセージです。完全なスタックトレースを表示してください。 'e.printStacktrace(...)'を使います。 –

答えて

-1

完全なエラーメッセージです:あなたのプロジェクトのフォルダ構造とコードを見てみなければ

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 

Connection conn = null; 
... 
try { 
    conn = 
     DriverManager.getConnection("jdbc:mysql://localhost/test?" + 
            "user=minty&password=greatsqldb"); 

    // Do something with the Connection 

    ... 
} catch (SQLException ex) { 
    // handle any errors 
    System.out.println("SQLException: " + ex.getMessage()); 
    System.out.println("SQLState: " + ex.getSQLState()); 
    System.out.println("VendorError: " + ex.getErrorCode()); 
} 
+0

あなたのproyectにmysqlのライブラリを追加しますか? –

+0

はい、私が言及したのと同じプロジェクトの標準クラスで動作しますが、例外はSQLExceptionではないClassNotFoundExceptionです。 –

+0

btw、あなたの答えはSQL文法エラー –

0

を、あなたを与えることは困難です解決策。

ただし、リンク先の声明文では、Webアプリケーションのフォルダ構造の重要性が示されています。 https://tomcat.apache.org/tomcat-5.5-doc/appdev/deployment.html

/WEB-INF/classes/- このディレクトリには、アプリケーションのJavaクラスファイルが含まれています。

/WEB-INF/lib/- このディレクトリには、サードパーティのクラスライブラリやJDBCドライバなどのアプリケーションに必要なJavaクラスファイル(および関連するリソース)を含むJARファイルが含まれます。

あなたはwarファイルを解凍し、mysql jarファイルのWEB_INF/libで略奪することができます。

関連する問題