何となくjdbc.diconに問題があるっぽいので、しばらくそれをいじくる。
第一段階
はじめのjdbc.dicon (doltengで用意されたのをMySQLの項をコメントアウトをはずしたもの)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/dtd/components24.dtd"> <components namespace="jdbc"> <include path="jta.dicon"/> <!-- MySQL - MySQL4.0以下でマルチバイト文字を扱う場合には,URL指定の後に, 以下の接続パラメータを追加で指定してください. useUnicode=true characterEncoding=[MySQLのエンコーディングに対応した Javaのエンコーディング名] 例:"jdbc:mysql://localhost:3306/test?useUnicode=true" + "&characterEncoding=Windows-31J" - MySQL5.0以降で,エンコーディングがeucjpmsの列を扱う場合には, URL指定の後に,以下の接続パラメータを追加で指定してください. characterEncoding=UTF-8またはWindows-31J characterSetResults=UTF-8またはWindows-31J 例:"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8" + "&characterSetResults=UTF-8" この指定をしない場合,Java側でUCS-2⇔EUC_JP_Solarisの変換が 行なわれるため,ユーザー定義外字などの一部の文字が化けます. この指定をすることで,MySQL側でeucjpms⇔ucs2⇔utf8(cp932)の 変換が行なわれ,Java側でUCS-2⇔UTF-8(Windows-31J)の変換が 行なわれるようになります.この結果,文字化けを防げます. なおJIS X 0212(補助漢字)を使用する場合は,Windows-31Jではなく UTF-8を指定する必要があります. - 上記以外の場合は,my.cnfでdefault-character-setの設定を適切に (cp932やutf8など.デフォルトのlatin1は不可)行なっていれば, 文字化けは防げます. --> <component name="xaDataSource" class="org.seasar.extension.dbcp.impl.XADataSourceImpl"> <property name="driverClassName"> "com.mysql.jdbc.Driver" </property> <property name="URL"> "jdbc:mysql://localhost:3306/s2jdbc" </property> <property name="user">"root"</property> <property name="password">"6sql"</property> </component> </components>
エラー内容: DataSourceがnullなのは許せない
第二段階
jdbc.diconのDataSource、ConnectionPoolをコメントインする
<component name="connectionPool" class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl"> <property name="timeout">600</property> <property name="maxPoolSize">10</property> <property name="allowLocalTx">true</property> <destroyMethod name="close"/> </component> <component name="DataSource" class="org.seasar.extension.dbcp.impl.DataSourceImpl" />
main()からJavaアプリケーション実行したときには成功するようになった
しかし、sastrutsを介したページがいつまでたっても表示できない(dataSourceがいつまでたってもnullだよー)と苦しんでいたが、なんか、tomcat再起動させたら表示されるようになってた