#起きた問題
スッキリわかるサーブレット 第13章 docotsubuがSQLに繋がらない
(一番下にエラーを書いておく)
エラー内容の冒頭
java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432/docotsubu
から、ダウンロードしたはずのpostgresqlのドライバのパスが通っていない感じ。
#解決方法
postgresqlのドライバをダウンロードした後、そのjarファイルを
C:\pleiades-2020-03-java-win-64bit-jre_20200322\pleiades\tomcat\9\lib フォルダに、置く、というか移動させる。
その後、eclipseでビルドパスを通す。
<方法>
➡docotsubu3のパースペクティブ右クリック
➡ビルドパス
➡ビルドパスの構成
➡(左の)javaのビルドパス
➡(上の)ライブラリ
➡モジュールパス
➡(右の)クラス・フォルダの追加
➡WebContent/WEB-INF/libを選択
➡(右の)外部のjarファイルの追加
➡C:\pleiades-2020-03-java-win-64bit-jre_20200322\pleiades\tomcat\9\libのドライバを選択
➡(右下)適用
参照ライブラリに追加されていればOK
↓参考サイト
https://sukkiri.jp/technologies/ides/eclipse/h2jdbc_install_web.html?ssj=13
確かに、SQLに繋がるようになったが、今度は、日本語で文字化けが起こる。
コマンドプロンプトだけならまだしも、ブラウザで実行しても文字化け。
#試したこと
・上記、斜線を引いてる方法でビルドパスを通した。
・サーバーの再起動。
・サーバーを一度削除。
・Class.forName("org.postgresql.Driver");
をSQLとコネクトする前の位置に入れる。
・↑の例外処理をしたり色々。
結局、この文は、古いバージョンだと必要なものらしい。
・書籍付録のサンプルコードをコピペで新しいパースペクティブを作り、docotsubuを作成。
・その他質問サイトとか探って色々やったけど、何したか忘れた。
結局、書籍の参考サイトに答えがあったというオチ・・・
マジであほ。
#エラーコード
java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432/docotsubu
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
at dao.MutterDAO.findAll(MutterDAO.java:23)
at model.GetMutterListLogic.execute(GetMutterListLogic.java:11)
at servlet.Main.doGet(Main.java:30)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:688)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1594)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)```