【问题标题】:Unable to deploy eclipse project on glassfish server无法在 glassfish 服务器上部署 eclipse 项目
【发布时间】:2014-10-22 14:23:00
【问题描述】:

我正在尝试在 glassfish 上开发我的应用程序,我使用 eclipse luna,但出现以下错误:

加载应用程序时出现异常:java.lang.IllegalStateException: ContainerBase.addChild:开始: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>

有人见过吗????

【问题讨论】:

    标签: java eclipse glassfish


    【解决方案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 &amp; Build您的项目。

    顺便说一句,您发布的web.xml 的一部分表明您正在使用过时和不推荐使用的技术(即 JSP),如果您开发一个应该运行的新 Web 应用程序,这在 2014 年没有任何意义在 Glassfish 上(我猜至少是第 3 版)。对于标准的 JSF 2.x Web 应用程序,您不需要像 com.sun.faces.config.ConfigureListener 这样的东西。

    您应该考虑切换到更新的“软件堆栈”(JSF 2、EJB 3.1、JPA 2)。

    【讨论】:

    • 如果我删除监听器它也不起作用,它说不能部署...我忘了说项目来自svn存储库。
    • 我猜你在移除监听器后会得到一个不同的错误。也许你可以用这个更新你的问题或提出一个新问题。
    • 我也有同样的问题。并且 web.xml 中提到的类确实实现了 HttpSessionListener
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 2015-11-18
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 2013-04-18
    • 2018-04-23
    相关资源
    最近更新 更多