Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper cannot be cast to

例外出力され行き詰ってます。
どうかご助言お願いします
開発環境スペックは以下のとおり
Tomcat・・6.037
JDK,JRE1.6
DB・・・xampp1.7.7を使用したのでMySQL5.5.16を使用しました
統合開発環境はEclipse3.7を使用
JDBC5.06を使用
・JDBCのファイルmysql-connector-java-5.0.6-binをTomcatのlibフォルダ直下、Eclipseの作業用フォルダー
直下の\HappyChat\WebContent\WEB-INF\libに配置済み
JDBCの接続はTomcatのSever.xmlに以下の通り記述しました
中略・・・
<Context docBase="HappyChat" path="/HappyChat" reloadable="true" source="org.eclipse.jst.jee.server:HappyChat">
       <Resource name="jdbc/mydata"
            auth="Container"
            type="javax.sql.DataSource"
            username="データベースのユーザ名"//
            password="データベースのパスワード"//
            driverClassName="com.mysql.jdbc.Driver"
           url="jdbc:mysql://localhost:3306/happychat_db?autoReconnect=true"
            />
  </Context>
今現在問題になってるのは題名通りの例外が出力されて行き詰ってます
すべての例外出力は以下の通りになります
java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper cannot be cast to com.mysql.jdbc.Connection
    at Db_UserData.createConnection(Db_UserData.java:25)
    at Db_UserData.AccountDataAdd(Db_UserData.java:50)
    at UserAccuntCotoroler.doGet(UserAccuntCotoroler.java:30)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    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:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
2013/07/07 18:28:38 org.apache.catalina.core.StandardWrapperValve invoke
致命的: サーブレット UserAccuntCotoroler のServlet.service()が例外を投げました
java.lang.NullPointerException
    at Db_UserData.AccountDataAdd(Db_UserData.java:54)
    at UserAccuntCotoroler.doGet(UserAccuntCotoroler.java:30)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    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:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
以上になります。
色々調べてみてはいたんですがまったく変わらず以前として同じ例外が出力されMySQLのDBに接続できない状態になっています。
どなた様かどうかご助言のお願いします

14

回答

16639

閲覧

14件の回答

評価

0

>色々調べてみてはいたんですが
これじゃ実際に何やったのか、読んでる方は全然判らないよ。

評価

0

回答者匿名さん<<
投稿者です。
調べた内容としては今回例外出力されたのをグーグルに投げたり本を読んで記述が間違ってるかなどを調べたりしていました。

評価

0

調べた内容もそうだけど、それで何が出てきたから何を
試したの、ていうこと。

評価

0

回答有難うございます
匿名質問者です
データソースを利用してMySQLのDBにで接続するためにJNDlでリソース名をServer.xmlにリソース名,ユーザ名,パスワード,url,JDBCドライバのクラス名を記述して設定しました。
また本文にも書いてる通りJDBCのjarファイルをしようするためにysql-connector-java-5.0.6-binをTomcatのlibフォルダ直下、Eclipseの作業用フォルダー
直下の\HappyChat\WebContent\WEB-INF\libに配置しました
その上でEclipseで実行させました。
その結果java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper cannot be cast toという例外がコンソール出力されたんです。

評価

0

いや…それは例外が発生するまでの経過の話でしょ。
その後

>色々調べてみてはいた

のが何かって言ってるのに。

評価

0

出力されてる例外はcaused byがあるのに、そっちを見てないのがどうなんだ。

評価

0

ってごめん、caused byじゃなかった。

評価

0

匿名回答者さん質問者です
返答返します。
<<のが何かって言ってるのに。
調べた内容としてJDBCで接続するためにはTomcat,Eclipseのlibフォルダに配置が必要、なのでmysql-connector-java-5.0.6-binを配置そのままでもjavaソースで接続できなくてもないけど管理の観点からデータソースを使ったほうが良いと思った。
なのでデータソースの使い方を調べてみました
、調べた結果はServer.xmlにDBのリソース名を記述することがわかったので記述しました
その上で題名の例外が出力されているんです。
また、その後もその例外をコピペしてグーグルに投げて調べていました
リソース名、ドライバのクラス名、URLあってるはずです、またちゃんとJDBCドライバのファイルも置きました。
その上でなんで題名の例外が出力されるんですか?
ほんの少しでいいからご助言お願いします

評価

0

例外がどういうものと理解しているか
それについて何を調べたのか
調べた結果どういう対応をしたのか
っていうのを聞いてるんだと思うんだけど

致命的〜の部分については調べたの?

評価

0

質問者です
致命的〜は調べるまでもなくぬるぽじゃないですか?
なら空のオブジェクトが呼び出されたときに返される例外ですよね?
そうではなく今回の根本的な問題は題名の例外出力がなんでなんかが知りたいんですけど
でないと「なんで」がわからないと原因がつきとめられないので
なんで題名の例外が出力されるのかあなたはがわからないんですか?

評価

0

Db_UserDataのimport文が
 import java.sql.Connection;
ではなく
 import com.mysql.jdbc.Connection;
になっているのが一因かと。。

まともな回答が得られずイライラされるのも分かりますが、
上の内容は例外から読み取れる情報です。
他にも、UserAccuntCotorolerクラス、Db_UserDataクラスに問題を
抱えていそうですが、まず「DBに接続できない」と問題を断定せずに
広い視野で原因を予測するクセをつけましょう

評価

0

質問者です
有難うございます。
仰るとおり一点だけしかみていなかったかもし知れないです。

評価

0

まともな回答がほしければここに質問しないことをすすめる・w・

評価

0

まともなつーか、望み通りのつーか。
「答え」が出てくることは少ないね。
OKWaveかなんかなら、まんま答えを書いてくれるよ。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。