-
Type: Bug
-
Resolution: Fixed
-
Priority: Major
-
Affects Version/s: None
-
None
Tomcat で開発中のシステムを、本番稼働に備えてWebSphere6.0 で動作させると、
こんな例外が出て困っています。
例外(先頭部分のみ - 例外の全文は添付します)
------------------------------------------------------------------------------
[06/08/29 16:22:59:175 JST] 00000033 ValueBindingI E Cannot get value for expression '#
[06/08/29 16:22:59:253 JST] 00000033 ValueBindingI E TRAS0014I: 次の例外がログに記録されました。 org.seasar.framework.beans.PropertyNotFoundRuntimeException: [ESSR0065]クラス(java.lang.String)のプロパティ(empno)が見つかりません
at org.seasar.framework.beans.impl.BeanDescImpl.getPropertyDesc(BeanDescImpl.java:102)
at org.seasar.jsf.el.S2PropertyResolver.getProperty(S2PropertyResolver.java:202)
at org.seasar.jsf.el.S2PropertyResolver.getValue(S2PropertyResolver.java:56)
at org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELParserHelper.java:555)
at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:441)
at javax.faces.component.UIParameter.getValue(UIParameter.java:129)
at org.seasar.jsf.util.UIParameterUtil.saveParamsToRequest(UIParameterUtil.java:40)
at org.seasar.jsf.application.ActionListenerImpl.processAction(ActionListenerImpl.java:58)
------------------------------------------------------------------------------
これは、s2jsf-examples を、WebSphere6.0(正確には、Rational Software Development上
のテストサーバ)に持っていって、
Employee Management → [search]ボタン → 結果一覧の適当な行のEdit、Delete、Inquire
をクリックすると発生する例外です。
開発中のシステムでは、
s2-framework-2.3.11.jar
s2-extension-2.3.11.jar
s2-jsf-1.0.16.jar
ですが、同じような現象が発生します。
全ての画面で発生するわけではなく、特定の画面のみです。どのような画面で
発生するのかはよくわかりませんが、ページ遷移をともなう画面にのみ発生している
ような気がします(確実ではありません)。
s2jsf-examples の、他の画面ではこの例外は発生していません。
ただ、Validator で、存在しない日付を入力して[submit] を押すと、
-----------------------------------------------------------------------------
[06/08/29 16:40:51:653 JST] 00000036 ServletWrappe E SRVE0068E: サーブレット Faces Servlet で service() メソッドを呼び出せませんでした。 スローされた例外: java.lang.NullPointerException
at javax.faces.convert.ConverterException.<init>(ConverterException.java:105)
at org.seasar.jsf.convert.S2DateTimeConverter.getAsObject(S2DateTimeConverter.java:82)
at org.apache.myfaces.renderkit.RendererUtils.getConvertedUIOutputValue(RendererUtils.java:780)
-----------------------------------------------------------------------------
となります。上の例外とは関係ないとは思いますが。
開発中のシステムで発生しているのは、
「メンテナンス画面」→「確認画面」→「完了画面」
と遷移するメンテナンス系の画面で、最初の1回は正常に完了画面まで
遷移しますが、続けて別のデータをメンテナンスしようとすると、同じような
例外になります。
例外の中の、
-----------------------------------------------------------------------------
クラス(java.lang.String)のプロパティ(empno)が見つかりません
-----------------------------------------------------------------------------
という部分から見ると、
-----------------------------------------------------------------------------
m:value="#{e.empno}
"
-----------------------------------------------------------------------------
の、e をString として判断してしまっているようです。