2
2

More than 3 years have passed since last update.

スッキリわかるサーブレット 第13章のdocotsubuがPostgreSQLに繋がらない問題

Posted at

起きた問題

スッキリわかるサーブレット 第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)```

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2