[Seasar-user:7768] [Teeda] not readable & 文字化け

松山 大樹 [E-MAIL ADDRESS DELETED]
2007年 5月 23日 (水) 16:29:53 JST


 松山です。

 先日から、ようやくTeeda + S2Dao を触り始めました。
 開発中の案件で、エンドユーザにHTML を作成してもらう、というのが
あり、S2JSF の、<span m:inject="s:forEach" .... > だと厳しいので
素のhtml に近い、Teeda を考えています。

 まずは、S2JSF のアプリケーションを、Teeda に置き換えてみようと、
Chura Projectを作り(Super Agile(S2Dao))、最初のログイン画面を作成しはじめました。

 S2JSF のアプリケーションは、Dto、Action、Logic に分かれているので、
できるだけそのまま使用できるように、Page にロジックを記述するのではなく、
teeda-html-examples のAdd2 を真似してみました。
 この部分に関する記述が見あたらなかったので、Add2 を真似して、
TestLoginPage に対して、TestLoginAction を作成し、プロパティとして
TestLoginPage を定義し、ここにdoLogin() メソッドを定義しました。
doLogin() では、TestLoginLogic#update() メソッドを呼んでいます。

 この状態で実行すると、action#doLogin() → logic#update() と実行される
のですが、logic#update() が終わったあと、action#doLogin() で、

java.lang.IllegalStateException: not readable
	at org.seasar.framework.beans.impl.PropertyDescImpl.getValue(PropertyDescImpl.java:174)
	at org.seasar.teeda.extension.interceptor.ActionSupportInterceptor.invoke(ActionSupportInterceptor.java:71)
	at jp.co.wowcom.churaTest.web.test.TestLoginAction$$EnhancedByS2AOP$$1692a49$$MethodInvocation$$doLogin0.proceed(MethodInvocationClassGenerator.java)

 と例外が発生し、エラーページが表示されます。
 これは、なぜでしょう?

TestLoginAction
------------------------------------------------------------------
	private TestLoginPage testLoginPage = null;
	private TestLoginLogic testLoginLogic = null;
	public String doLogin() {
		System.out.println("userNo=" + testLoginPage.getUserNo());
		testLoginLogic.update(testLoginPage.getUserNo());
		return null;
	}
------------------------------------------------------------------

TestLoginLogic
------------------------------------------------------------------
	public void update(String aUserNo) {
		System.out.println("start update");
		System.out.println("end update");
	}
------------------------------------------------------------------

 DEBUG LOG 
------------------------------------------------------------------
DEBUG 2007-05-23 16:06:59,714 HOT deployを開始します
DEBUG 2007-05-23 16:06:59,808 クラス(jp.co.wowcom.churaTest.web.test.TestLoginPage[test_testLoginPage])のコンポーネント定義を登録します
DEBUG 2007-05-23 16:06:59,855 クラス(jp.co.wowcom.churaTest.web.test.TestLoginLogic[test_testLoginLogic])のコンポーネント定義を登録します
DEBUG 2007-05-23 16:06:59,855 クラス(jp.co.wowcom.churaTest.web.test.TestLoginAction[test_testLoginAction])のコンポーネント定義を登録します
DEBUG 2007-05-23 16:06:59,886 BEGIN jp.co.wowcom.churaTest.web.test.TestLoginAction#doLogin()
userNo=0004136
start update
end update
DEBUG 2007-05-23 16:06:59,886 END jp.co.wowcom.churaTest.web.test.TestLoginAction#doLogin() Throwable:java.lang.IllegalStateException: not readable
DEBUG 2007-05-23 16:06:59,886 not readable
java.lang.IllegalStateException: not readable
  :
------------------------------------------------------------------
 
 S2 2.4.13 + teeda 1.0.6 です。

 あと、もう1点。
 既存のS2JSF アプリケーションのHTML は、全てShift-JIS(MS932) で作成されているので、
それを生かすためにプロジェクトのテキスト・ファイル・エンコードを、MS932 にしています。
Eclipse のエディタ上では正常に表示されているのですが、ブラウザに表示すると化けます。
 ブラウザでエンコードを確認すると、なぜかUTF-8 になっているので、Shift-JIS に変更しても、
やはり化けています(化け方は違いますが)。
 プロジェクトのテキスト・ファイル・エンコードをUTF-8 にして、新規ファイルをUTF-8 で
作成すると、ブラウザ上も化けなくなりますが。
 みなさんは、エンコードをどのように設定されているのでしょうか?

-- 
::: 株式会社WOWOWコミュニケーションズ http://www.wowcom.co.jp/
:::   ITシステムインテグレートサービスDept.
:::  Webソリューション開発Unit.
:::   松山 大樹 - [E-MAIL ADDRESS DELETED]




Seasar-user メーリングリストの案内