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;
	}

あと一歩だと思うので、もう少しがんばってみようと思います。