- PR -

JDBCによるMySQLとの接続

1
投稿者投稿内容
jmasu
会議室デビュー日: 2004/03/01
投稿数: 19
投稿日時: 2004-03-01 21:50
はじめまして。Jといいます。

最近、Javaを始めて簡単なアプリを作っているのですが、単純にJava+JDBCの時はうまくいきますが、Webシステムとして動作させると

java.sql.SQLException: Unable to connect to any hosts due to exception: java.security.AccessControlException: access denied (java.net.SocketPermission xxx.xxx.xxx.xxx:3306 connect,resolve)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1719)

とエラーになってしまいます。どうもアカウントはrootを使用し、

grant all on *.* to root@'%' identified by 'root'

あたりもやっています。何が悪いのでしょうか・・・・・・・。

環境は

j2sdk1.5
Apache2.0.48
Tomcat5.0.19
MySQL4.0.16
mysql-connector-java-3.0.11-stable-bin.jar
ソースの編集およびサーバともにWindows2000

です。

何が足りないのかお教えください。

愛が足りないのでしょうか・・・・・・・.
jmasu
会議室デビュー日: 2004/03/01
投稿数: 19
投稿日時: 2004-03-02 00:02
自己レスです。

2004/03/01 23:54:32 org.apache.catalina.startup.Catalina start
情報: Server startup in 7230 ms
2004/03/01 23:54:41 org.apache.jk.common.HandlerRequest decodeRequest
警告: Error registering request

こんなエラーはいてました。
Apache、Tomcat間の文字コードが問題っぽいです・・・・・・・。
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2004-03-02 00:34
もっとまともな回答があるかと思いますが、最後の一文でウケてしまったので、とりあえず問題の切り分けだけ回答します

出ている例外のトップは SQLException ですが、SocketPermisson が受け入れられなかったせいで AccessControlException が発生したのがその原因と書かれていますね。

Java + JDBC で動いていたのに動かなくなった違いとして、Apache + Tomcat を経由しており、その設定に洩れがあるため、接続が許可されなかったと考えられます。

結論ですが、Apache ないし Tomcat のセキュリティポリシー設定を調べてください。
設定ファイルの書き方はネットで検索すれば容易に見つかると思います。
(と、まわりくどい書き方をしていますが、じらしているわけではありません。
私自身はもっぱら JBoss 3.2.3(Tomcat コア)を使っており、Apache + Tomcat の場合の勝手がわからないだけです
jmasu
会議室デビュー日: 2004/03/01
投稿数: 19
投稿日時: 2004-03-02 19:01
ありがとうございます。

まずは、listenのポートなどなど調べてみます。
1

スキルアップ/キャリアアップ(JOB@IT)