1

次のコードを含む Web アプリケーションがあります。

<rich:dataScroller id="id1" for="tableX" execute="tableX" page="#{formBackingBean.navigationHelper.scrollerPage}" render="tableX-sc1 tableY" maxPages="5" scrollListener="#{aBean.handleScrollPage()}" fastControls="hide" />

私は richfaces 4.2.0 final を使用し、JBoss 6 (JSF 実装として Mojarra 2.0.3 を使用した場所) でこれは正常に動作します。アプリケーションを JBoss EAP 6 (つまり Jboss 7) にインストールしましたが、次の例外が発生します。

[javax.enterprise.resource.webcontainer.jsf.lifecycle] (http-localhost/127.0.0.1:8080-1) /example/pages/common/myPage.xhtml @93,29 scrollListener="#{aBean.handleScrollPage()}": Method not found: example.pagecode.ABean$Proxy$_$$_WeldSubclass@1cf00a1.handleScrollPage(): javax.el.MethodNotFoundException: example/pages/common/myPage.xhtml @93,29 scrollListener="#{aBean.handleScrollPage()}": Method not found: example.ABean$Proxy$_$$_WeldSubclass@1cf00a1.handleScrollPage()
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:109) [jsf-impl-2.1.7-redhat-1.jar:2.1.7-redhat-1]
    at org.richfaces.taglib.MethodExpressionScrollListener.processDataScroll(MethodExpressionScrollListener.java:27) [richfaces-components-ui-4.2.0.Final.jar:4.2.0.Final]
    at org.richfaces.event.DataScrollEvent.processListener(DataScrollEvent.java:83) [richfaces-components-api-4.2.0.Final.jar:4.2.0.Final]
    at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769) [jboss-jsf-api_2.1_spec-2.0.2.Final-redhat-1.jar:2.0.2.Final-redhat-1]
    at org.richfaces.component.AbstractDataScroller.broadcast(AbstractDataScroller.java:166) [richfaces-components-ui-4.2.0.Final.jar:4.2.0.Final]
    at org.richfaces.component.RowKeyContextEventWrapper.broadcast(RowKeyContextEventWrapper.java:104) [richfaces-components-ui-4.2.0.Final.jar:4.2.0.Final]
    at org.richfaces.component.UIDataAdaptor.broadcast(UIDataAdaptor.java:455) [richfaces-components-ui-4.2.0.Final.jar:4.2.0.Final]
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794) [jboss-jsf-api_2.1_spec-2.0.2.Final-redhat-1.jar:2.0.2.Final-redhat-1]
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259) [jboss-jsf-api_2.1_spec-2.0.2.Final-redhat-1.jar:2.0.2.Final-redhat-1]
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) [jsf-impl-2.1.7-redhat-1.jar:2.1.7-redhat-1]
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.7-redhat-1.jar:2.1.7-redhat-1]
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) [jsf-impl-2.1.7-redhat-1.jar:2.1.7-redhat-1]
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) [jboss-jsf-api_2.1_spec-2.0.2.Final-redhat-1.jar:2.0.2.Final-redhat-1]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.16.Final-redhat-1.jar:]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.16.Final-redhat-1.jar:]
    .....

何が間違っている可能性があるかについてのヒントはありますか?どうもありがとう!

4

1 に答える 1

1

これは前に見たことがなく、原因を説明することはできませんが、JBoss 7 EL 実装のバグであるに違いありません。最初のステップとして、メソッドから不要な括弧を削除してみます。

scrollListener="#{aBean.handleScrollPage()}" 

となるように

scrollListener="#{aBean.handleScrollPage}" 

(質問のコメントで確認されているように、これで問題は解決しました。おそらく、このリスナーメソッドがオプションで引数を受け入れ、RichFacesが暗黙的に引数を提供した可能性があるという事実に関連しています)

完全を期すために、この問題を JBoss 担当者に報告することをお勧めします。

于 2012-09-10T16:43:31.547 に答える