苦戦中。TeedaGenericPortletを作成したものの、それを使うと、jsp に書いてある jsf のタグが処理というか、表示がされない。facet の value エラーは同様にでるのでタグは処理されているような気はするのだが。renderの前かで、変なことをしているか、ほかにやることがあるのか・・・。うむむ、なかなか簡単にはいかんもんだ。
カテゴリー: Seasar
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) ...