我正在尝试在glassfish上开发我的应用程序,我使用eclipse luna,但是我收到以下错误:
加载应用程序时出现异常:java.lang.IllegalStateException: ContainerBase.addChild:start:org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException异常: java.lang.IllegalArgumentException:PWC1430:无法添加监听器 输入:br.com.hrtech.atendimento.listener.ContadorSessao,因为它 没有实现任何所需的ServletContextListener, ServletContextAttributeListener,ServletRequestListener, ServletRequestAttributeListener,HttpSessionListener或 HttpSessionAttributeListener接口。请参阅server.log了解 更多细节。
我认为那是关于web.xml
的事情,我有这个代码,但我无法理解错误:
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
有人见过这个????
答案 0 :(得分:1)
错误消息清楚地描述了问题:
无法添加类型的侦听器: br.com.hrtech.atendimento.listener.ContadorSessao,因为它没有 实现任何所需的ServletContextListener, ServletContextAttributeListener,ServletRequestListener, ServletRequestAttributeListener,HttpSessionListener或 HttpSessionAttributeListener接口。
消息显示您已将名为br.com.hrtech.atendimento.listener.ContadorSessao
的类注册为侦听器(可能在web.xml
中),该类未实现任何所需的接口。
如果要将其注册为侦听器,则必须在类中实现其中一个接口。
所以要么你可以做这样的事情:
public class ContadorSessao implements ServletContextListener {
// implement all required methods
}
或者,如果这真的不应该是一个倾听者,那么web.xml
中的条目似乎是这样的:
<listener>
<listener-class>br.com.hrtech.atendimento.listener.ContadorSessao</listener-class>
</listener>
删除此条目,它应该有效。
如果其中一个解决方案无法解决问题,请确保在使用新设置重新部署项目之前Clean & Build
项目。
顺便说一下,您发布的web.xml
部分表示您正在使用过时的和不推荐使用的技术(即JSP),如果您开发一个新的Web应用程序,那么2014年没有任何意义。应该在Glassfish上运行(我猜至少版本3)。对于标准的JSF 2.x Web应用程序,您不需要com.sun.faces.config.ConfigureListener
。
您应该考虑切换到更新的“软件堆栈”(JSF 2,EJB 3.1,JPA 2)。