S2JSF1.1で例外が...
S2JSF1.0.16で動作しているものをS2JSF1.1 beta2に移行しています。
exampleをベースに、
- web.xmlをマージ
- diconファイルをマージ
- propertiesファイルをマージ
- 参照しているjarパッケージをマージ
しつつ、プログラムはそのままビルドできました。
この際の注意点ですが、
- j2ee.dicon はS2Containerに同梱され、 DBの接続情報はjdbc.diconに書くことになっています。
- エラーページを定義するjsfErrorPage.dicon は、teedaErrorPage.diconに変更になったようです。
これでもう完了!と動作させたところ、一部のページで例外が発生してしまいました。
うーん。何か間違いがあるのか....
java.lang.UnsupportedOperationException: getInstanceDef org.seasar.framework.container.impl.SimpleComponentDef.getInstanceDef(SimpleComponentDef.java:326) org.seasar.jsf.util.InvokeUtil.exportVariables(InvokeUtil.java:169) org.seasar.jsf.util.InvokeUtil.invoke(InvokeUtil.java:73) org.seasar.jsf.runtime.ViewRendererImpl.executeInitAction(ViewRendererImpl.java:151) org.seasar.jsf.runtime.ViewRendererImpl.renderView(ViewRendererImpl.java:92) org.seasar.jsf.application.S2ViewHandler.renderView(S2ViewHandler.java:123) org.seasar.jsf.lifecycle.LifecycleImpl.render(LifecycleImpl.java:190) javax.faces.webapp.FacesServlet.service(FacesServlet.java:80) examples.jsf.util.RequestDumpFilter.doFilter(RequestDumpFilter.java:66) org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:63)
この例外の出る・出ないの差異をを調べる必要があります。
ぱっと見た感じは、applicationやsessionの自動インジェクションを利用している点。
private ServletContext application; public void setApplication(ServletContext application) { this.application = application; } private HttpSession session; public void setSession(HttpSession session) { this.session = session; }
あと一歩だと思うので、もう少しがんばってみようと思います。