wataka日記 このページをアンテナに追加 RSSフィード

2006-08-07

[]新バージョンがリリースされています。 10:28

id:yone098さまとid:shot6さまより、

S2JSF1.0.xx および S2JSF1.1.xxの最新版リリースがアナウンスされています。

■[Seasar2][S2JSF]S2JSF1.0.16 Release

http://d.hatena.ne.jp/yone098/20060807/1154884568

■[S2JSF]S2JSF 1.1.0 beta2リリース

http://d.hatena.ne.jp/shot6/20060805#1154751169

平行して入れてみようと思います。

[]S2JSF1.0.16を入れました 10:52

exampleからjarファイルを頂きました。

(s2-jsf-1.0.16.jar

内訳は以下のとおりです。

  • s2-framework-2.3.7.jar(変更無し)
  • s2-extension-2.3.7.jar(変更無し)
  • s2-dao-1.0.31.jar(変更無し)
  • s2-jsf-1.0.16.jar

S2Daoは1.0.35を使っていますが問題ありません。

[]S2JSF1.1.0 beta2について 11:41

exampleを拝見したところ、内訳は以下のようになっています。

先日のエントリ(http://d.hatena.ne.jp/wataka/20060801#1154447601)で調べた内容と比べると、

ほぼS2JSFだけをウォッチしている私にしてみれば、関連するS2Containerのバージョンアップも含まれているため、

大きなバージョンアップであることが分かります。

S2Container、Teedaともに最新のスナップショットが入っているため、まさに「今からはじめるS2JSFな方にはうってつけなのではないでしょうか?

また、tomahawkを使ったファイルアップロードの設定もしてあるので、敷居が一段と低くなった印象を受けます。

[]S2JSF1.1で例外が... 13:17

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

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