プロが教える店舗&オフィスのセキュリティ対策術

Eclipse3.6でSeasar2にmysqlをインストールしようとしたら、
ブラウザに"[ESSR0007]S2Containerはnullあるいは空であってはいけません"というエラーが出る。

原因や心当たりが分かる方は教えてください。

私の手順としては
(1)jdbc.diconにデフォルトで設定されているHSQLDBをコメントにして、MYSQLをコメントから外します。
特に中で設定変更するのは、userとpasswordとURLの部分だけです。
URLにはjdbc:mysql://localhost:3306/XXXX?characterEncoding=UTF-8" +
"&characterSetResults=UTF-8"と入れますが、XXXXはテーブル名でしょうか。それともデータベース名でしょうか。

(2)s2jdbc.diconに<property name="dialect">hsqlDialect</property>の部分をmysqlDialectに変更します。

(3)WEB-INFフォルダの中にあるlibフォルダにmysql-connector-java-5.1.14-bin.jarを置いて、それを右クリックしてビルドパスを追加する。

というやり方ですが、問題はありますでしょうか。

ググってみても、どのサイトにも分かりづらいし、それに沿った説明があまり見つかりません。
どうすれば解決できますでしょうか。

A 回答 (3件)

S2のORマッピングツールはMYSQLにも普通に対応していたと思います。


S2JDBCの設定ファイル(.dicon)を探して設定を確認してみてはいかがでしょう。
※見当違いだったらすみません。

この回答への補足

ご回答ありがとうございます。

ご使用のOSは何でしょうか。
当方はWindowsVistaです。

私はMySQLからデータを取得し、H2でその同じテーブルを作成し、Scaffoldで実行し、ブラウザで表示してみたら問題なく表示されました。
しかし、H2ではなくMySQLで実行すると、どうしてもエラーになって何も表示されません。S2Containerはnullあるいは空であってはいけませんとか、接続が壊れていますとか、起動するたびに違ったエラーが表示されます。

恐らく文字コードの問題だと思います。

補足日時:2011/03/24 14:58
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

問題は解決に繋がらなかったのですが、別の方法を試してみます。

お礼日時:2011/03/29 12:47

> やってみましたが、ダメでした。


では、ちょっと情報量が少なすぎるので、コンソールに表示されるログを公開していただけると、もう少し分析できるのですが。

先に述べましたとおり、MySQLの設定だけで質問の現象が出るわけではないので、今の状況で問題解決するのは難しいです。

この回答への補足

NARHさん、ご返事ありがとうございます。
返事遅くなってすみません。

コンソールのログのURLを提示しました。
(1)新たなプロジェクトを作成して、上記のような手順でやって、ブラウザに表示させたところ、以下のエラーが表示された。
http://bit.ly/gtpz73

(2)Eclipseを再起動して、再びEclipseのtomcatアイコンを押して、ブラウザを表示したら、さっきと違うエラーが出た。
http://bit.ly/e8vzGO

(3)Eclipseのコンソールに表示したエラーログです。
http://bit.ly/fihiUi

恐らく私の推測では・・・S2JDBCは標準ではH2というデータベースのコマンドを使っているため、MySQLのコマンドが異なるため、こういったエラーが出てしまったと思います。だから、S2JDBCのORマッピングのところをMySQLにあわせようと自作したつもりでも、解説書がかなり省略されていて、どう作ればいいのか分かりませんし、ネットでググってもなかなか見つかりませんでした。

補足日時:2011/03/23 16:05
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

問題は解決に繋がらなかったのですが、別の方法を試してみます。

お礼日時:2011/03/29 12:42

s2jdbc を利用されるのですね。

XXXX はデータベース名です。
(3) はリフレッシュするだけでいいと思いますが、手順的には間違っていません。

Dolteng を使って試しにプロジェクトを作成してみましたが、問題なく動作しました。
#試したS2のバージョンはコンソールのログをみると2.4.43 のようです。

ログの StackTrace を見てみるともう少し状況がわかるのではないでしょうか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

やってみましたが、ダメでした。

私は『Seasar 2 徹底入門 SAStruts/S2JDBC 対応』の書籍を参考しましたが、サンプルコードにコードや説明の省略が多すぎて、難しいです。初心者向けの本ではないようです。

NARHさんに限らず他の方も、S2jdbcに関して、もう少し分かりやすいサイトや書籍があれば教えてください。

お礼日時:2011/03/22 16:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!