J2 Desktop

David からメールが来る。どうも今週は仕事が忙しかったらしい。来週からがんがんいくぜ、みたいな感じだ・・・。すまん、こっちはまだ見る時間がとれとらんよ・・・。という感じで、プレッシャー受ける。

teeda for Portlet

まだ、粘る。とりあえず、teeda.dicon でのexternalContext問題は、ExternalContextWrapperを作って、コンストラクタにサーブレットとポートレットを受け付けるのを作ってみた。そんで、デモを動かそうと思ったら、どうやら、最近?HtmlRenderKitImplでresponseWriterがなくなっているらしく、削除しないとそこでエラーになる(ほかにも変更があるのだろうか・・・)。まぁ、そんなことをしてやってきたが、HelloWorld的なものを実行すると以下のような NPE・・・。valueって・・・。つまり、diconからとれていないのかな・・・。なぜだろ・・・。うむむ、結構、いろいろとはまるな・・・。

Caused by: java.lang.NullPointerException: value
at javax.faces.internal.AssertionUtil.assertNotNull(AssertionUtil.java:32)
at javax.faces.internal.ComponentAttributesMap.put(ComponentAttributesMap.java:135)
at javax.faces.internal.WebAppUtils.setCreatedFacetNames(WebAppUtils.java:92)
at javax.faces.webapp.UIComponentTag.saveFacesComponentAttribute(UIComponentTag.java:467)
at javax.faces.webapp.UIComponentTag.removeOldFacets(UIComponentTag.java:444)
at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:190)
...

teeda for Portlet

teeda.diconとTeedaConfigureListenerを眺めてみる。MyFacesGenericPortletでは、初期化の部分をポートレットで、必要なの?みたいなコメントを書きつつやっているけど、案外、やらなくてもよいような気もするけど、やるとしたら、TeedaConfigureListenerの処理をPortlet#init でやればいいのかね(必要性はちょっとまだわからん)。問題は、teeda.dicon のexternalContextだな。これは、サーブレットとポートレットの環境で、それぞれのを返さないといかんから、DispatcherかFactory みたいなのを作って、それにrequest とかを渡して、適切なものを返してもらわないといかんな。はて、どうしよう・・・。