Teeda for Portlet

苦戦中。TeedaGenericPortletを作成したものの、それを使うと、jsp に書いてある jsf のタグが処理というか、表示がされない。facet の value エラーは同様にでるのでタグは処理されているような気はするのだが。renderの前かで、変なことをしているか、ほかにやることがあるのか・・・。うむむ、なかなか簡単にはいかんもんだ。

Teeda bug?

Teeda のポートレットサポートをがんばっているが、以下の問題に遭遇する。ポートレットサポートによる問題かと思ったら、teeda-example の helloDI.jsp に以下のコードを追加すると、

<h:panelGrid columns="2">
<h:outputText value="#{helloDto.hello}"/>
<h:outputText value="#{helloDto.hello}"/>
<f:facet name="footer">
<h:outputText value="#{helloDto.hello}"/>
</f:facet>
</h:panelGrid>

以下のように言われる。

java.lang.NullPointerException: value
javax.faces.internal.AssertionUtil.assertNotNull(AssertionUtil.java:32)
javax.faces.internal.ComponentAttributesMap.put(ComponentAttributesMap.java:135)
javax.faces.internal.WebAppUtils.setCreatedFacetNames(WebAppUtils.java:92)
javax.faces.webapp.UIComponentTag.saveFacesComponentAttribute(UIComponentTag.java:469)

どうも、Facet で何かが起きているような。

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)
...