无法在glassfish服务器上部署eclipse项目

时间:2014-10-22 14:23:00

标签: java eclipse glassfish

我正在尝试在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>

有人见过这个????

1 个答案:

答案 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)。