Eclipse 侦听器类(侦听器事件)com.sun.faces.config.ConfigureListener实例的发起请求(生命周期)发送时出现异常
您好,请帮助我创建一个动态项目Spring/JSF。 我使用的技术是:Eclipse 侦听器类(侦听器事件)com.sun.faces.config.ConfigureListener实例的发起请求(生命周期)发送时出现异常,eclipse,spring,tomcat7,jsf-2.2,mojarra,Eclipse,Spring,Tomcat7,Jsf 2.2,Mojarra,您好,请帮助我创建一个动态项目Spring/JSF。 我使用的技术是: JSF2.2(javax.faces-2.2.10.jar) Springframework 4.1.5 Tomcat 7.0.59 月蚀 我有一个错误: GRAVE: Une exception lors de l'envoi de requête a initié un évènement cycle de vie (lifecycle event) pour l'instance de classe à l'éco
- JSF2.2(javax.faces-2.2.10.jar)
- Springframework 4.1.5
- Tomcat 7.0.59
- 月蚀
GRAVE: Une exception lors de l'envoi de requête a initié un évènement cycle de vie (lifecycle event) pour l'instance de classe à l'écoute (listener event) com.sun.faces.config.ConfigureListener
java.lang.UnsupportedOperationException
at javax.faces.context.FacesContext.getExceptionHandler(FacesContext.java:287)
at javax.faces.event.ExceptionQueuedEventContext.getListenersForEventClass(ExceptionQueuedEventContext.java:262)
at com.sun.faces.application.ApplicationImpl.invokeComponentListenersFor(ApplicationImpl.java:2107)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:287)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:245)
at com.sun.faces.application.WebappLifecycleListener.requestDestroyed(WebappLifecycleListener.java:125)
at com.sun.faces.config.ConfigureListener.requestDestroyed(ConfigureListener.java:375)
at org.apache.catalina.core.StandardContext.fireRequestDestroyEvent(StandardContext.java:6223)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:215)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
代码如下:
Web.xml
HelloSpringService.java
@Service
public class HelloSpringService {
public String sayHello(){
return "Hello from Spring Service";
}
}
控制器
@ManagedBean
public class HelloController {
@ManagedProperty("#{helloSpringService}")
private HelloSpringService helloSpringService;
public String showHello(){
return helloSpringService.sayHello();
}
}
index.xhtml
<h:head></h:head>
<h:body>
managed bean says :
#{helloController.showHello()}
</h:body>
托管bean说:
#{helloController.showHello()}
请帮助:/
非常感谢。错误是:
GRAVE: Erreur lors de la configuration de la classe d'écoute de l'application (application listener) com.sun.faces.config.ConfigureListner
java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListner
在您的web.xml
中,可能有如下内容:
<listener>
<listener-class>com.sun.faces.config.ConfigureListner</listener-class>
</listener>
<servlet>
<servlet-name>facesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern> <!-- or one of your own -->
</servlet-mapping>
编辑:
修复侦听器名称后,显示另一个错误:
GRAVE: Une exception lors de l'envoi de requête a initié un évènement cycle de vie (lifecycle event) pour l'instance de classe à l'écoute (listener event) com.sun.faces.config.ConfigureListener
java.lang.UnsupportedOperationException
at javax.faces.context.FacesContext.getExceptionHandler(FacesContext.java:287)
如评论中所述,“ConfigureListener通常是自动注册的,请尝试从web.xml中删除listener,如果它已过时,请使用javax.faces.webapp.FacesServlet。”。相反,您可以使用如下内容:
<listener>
<listener-class>com.sun.faces.config.ConfigureListner</listener-class>
</listener>
<servlet>
<servlet-name>facesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern> <!-- or one of your own -->
</servlet-mapping>
小脸蛋
javax.faces.webapp.FacesServlet
1.
小脸蛋
*.jsf
我建议添加失败的代码部分。它可能会帮助某些人找出问题所在。ConfigureListener
通常是自动注册的,请尝试从web.xml
中删除listener,也可能是过时的,请使用javax.faces.webapp.FacesServlet
。非常感谢Bruno;)
<servlet>
<servlet-name>facesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern> <!-- or one of your own -->
</servlet-mapping>