# JSF: NoSuchMethodException, evaluationException



## Nicnac (8. Jun 2006)

Hallo,

ich habe ein Problem mit einer "NoSuchMethodException".

Ich habe eine Bean, die die Methode "getRightQuestionPage" enthält. 


```
public String getRightQuestionPage() {
 switch (...) {
   case PagePart.TYPE_SINGLECHOICE:
	return navigationspfad
...}
```
 
Aus der JSP-Datei versuche ich wie an vielen anderen Stellen in der Anwendung auch, diese Methode aufzufrufen:


```
<h:commandLink action="#{assistantBean.rightQuestionPage}">
  <h:outputText value="Seite anzeigen"/>
</h:commandLink>
```

Leider geht dies nicht. Hier der Stacktrace: 


08.06.2006 12:31:04 [http-8080-Processor24] ERROR [faces] - Servlet.service() for servlet faces threw exception
javax.faces.el.EvaluationException: Expression: #{assistantBean.rightQuestionPage}
	at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:180)
	at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:62)
	at javax.faces.component.UICommand.broadcast(UICommand.java:106)
	at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:110)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:184)
	at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:271)
	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:102)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:109)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:112)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292)
	at net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:84)
	at net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter.doFilter(SecurityEnforcementFilter.java:182)
	at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
	at net.sf.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:153)
	at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
	at net.sf.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:153)
	at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
	at de.mit.saturn.security.LoginFilter.doFilter(LoginFilter.java:128)
	at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
	at net.sf.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:226)
	at net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
	at net.sf.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:173)
	at net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:125)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:172)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NoSuchMethodException: de.mit.saturn.web.beans.AssistantBean.rightQuestionPage()
	at java.lang.Class.getMethod(Class.java:1581)
	at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:127)
	... 44 more

Vielen Dank für Eure Hilfe.
Nicnac


----------



## kama (8. Jun 2006)

Hi,

ich stelle dazu zwei Fragen:

1. Hast Du die Bean auch in face-config.xml registriert?
    Ich vermute ja.

2. Aus der Fehlermeldung würde ich schliessen, dass das nicht geht.
    Jedenfall so nicht.

MfG
Karl Heinz


----------



## Nicnac (8. Jun 2006)

Hallo,

ja die Bean ist registriert. Sie wird auch auf derselben Seite schon benutzt zur Darstellung von Daten. Das ist ja das, was ich nicht verstehe.
Ich hole mir vorher mit:

```
<h:selectOneRadio layout="pageDirection" value="#{assistantBean.questionType}">
		<f:selectItems value="#{assistantBean.questionTypesList}"/>
</h:selectOneRadio>
```

Daten aus der Bean und das funktioniert.
Bin völlig ratlos.

Danke für jeden Hinweis.

Viele Grüße
Nicnac


----------



## kama (8. Jun 2006)

Hi,

mach mal aus Deiner Method getRightQuestionPage() ein "rightQuestionPage()" und probier es dann nochmal.

MfG
Karl Heinz


----------



## Nicnac (9. Jun 2006)

Hallo,

uaah, das wars. Manchmal hat man echt ein Brett vor dem Kopf. Vielen Dank!

Viele Grüße
Nicnac


----------

