David からメールが来る。どうも今週は仕事が忙しかったらしい。来週からがんがんいくぜ、みたいな感じだ・・・。すまん、こっちはまだ見る時間がとれとらんよ・・・。という感じで、プレッシャー受ける。
投稿者: shinsuke
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 とかを渡して、適切なものを返してもらわないといかんな。はて、どうしよう・・・。