Jsf javax.el.MethodNotFoundException将枚举值作为方法参数传递时(JBoss 7.1.1)

Jsf javax.el.MethodNotFoundException将枚举值作为方法参数传递时(JBoss 7.1.1),jsf,jsf-2,el,jboss7.x,Jsf,Jsf 2,El,Jboss7.x,以下JSF视图片段: <h:commandLink value="Search" action="#{personSearch.search('SEARCH_TERM')}" styleClass="btn btn-primary" /> <h:commandLink value="Search" action="#{personSearch.search('SPECIALITY_CODE')}" styleClass="btn btn-primary" /> 它将以

以下JSF视图片段:

<h:commandLink value="Search" action="#{personSearch.search('SEARCH_TERM')}" styleClass="btn btn-primary" />

<h:commandLink value="Search" action="#{personSearch.search('SPECIALITY_CODE')}" styleClass="btn btn-primary" />
它将以下枚举类型作为参数:

公共枚举搜索类型{SEARCH_TERM,SPECIALITY_CODE}

由于MethodNotFoundException而失败:

10:34:06,851 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/core-webapp].[FacesServlet]] (http--0.0.0.0-8080-1) Servlet.service() for servlet FacesServlet threw exception: javax.el.MethodNotFoundException: /person/search.xhtml @59,39 action="#{personSearch.search('SPECIALITY_CODE')}": Method not found: Proxy for view class: net.hl.core.view.PersonSearch of EJB: PersonSearch.search(java.lang.String)
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:109) [jsf-impl-2.1.7-jbossorg-2.jar:]
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) [jsf-impl-2.1.7-jbossorg-2.jar:]
    at javax.faces.component.UICommand.broadcast(UICommand.java:315) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) [jsf-impl-2.1.7-jbossorg-2.jar:]
我正在使用JBossAS 7.1.1.Final和Mojarra 2.1.7-jbossorg-1


你知道哪里出了问题吗?

这是一个
EL
lib问题。这个问题引用了Tomcat 7——这与JBoss 7.1.1中的问题相同吗?JBoss EL比Tomcat的要好得多。这个异常表明,出于某种原因,该方法位于EJB中,而不是普通的托管bean中。我从未将视图直接绑定到企业bean,因此根据经验我无法判断这是否是预期的,但我会先尝试绑定到普通的托管bean。我已将其切换到托管bean,但仍然会出现错误:javax.el.MethodNotFoundException:/person/search.xhtml@59,39 action=“#{personSearch.search('SPECIALITY_CODE')}”:未找到方法:net.hl.core.view。PersonSearch@301b66.search(java.lang.String)
10:34:06,851 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/core-webapp].[FacesServlet]] (http--0.0.0.0-8080-1) Servlet.service() for servlet FacesServlet threw exception: javax.el.MethodNotFoundException: /person/search.xhtml @59,39 action="#{personSearch.search('SPECIALITY_CODE')}": Method not found: Proxy for view class: net.hl.core.view.PersonSearch of EJB: PersonSearch.search(java.lang.String)
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:109) [jsf-impl-2.1.7-jbossorg-2.jar:]
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) [jsf-impl-2.1.7-jbossorg-2.jar:]
    at javax.faces.component.UICommand.broadcast(UICommand.java:315) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final]
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) [jsf-impl-2.1.7-jbossorg-2.jar:]