cafegale(LeafCage備忘録)

LeafCage備忘録(はてなダイアリー)と統一しました。

助けて!S2JDBCに繫がらないの!

何となく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" +
		"&amp;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" +
		"&amp;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再起動させたら表示されるようになってた