【问题标题】:Placeholder for a listener class extending ApplicationLifecycleListener扩展 ApplicationLifecycleListener 的侦听器类的占位符
【发布时间】:2013-10-16 07:55:22
【问题描述】:

我有一个第三方类扩展了我在 weblogic-application.xml 文件中添加的 ApplicationLifecycleListener 作为监听器。这个类在服务器启动期间加载某些数据

weblogic-application.xml 片段

 <listener>
       <listener-class>com.XX.XX.XXX</listener-class>
 </listener>

现在我的项目结构已经改变,而不是我们构建 war 文件。谁能让我知道在哪里保留这段配置我的意思是我可以在哪个配置文件中添加这个监听器,因为 weblogic-application.xml 不再存在,因为我们从耳朵迁移到战争。

我可以看到 web.xml 和 weblogic.xml 作为占位符,它位于 web-inf 文件夹中以保留它。但是在此处添加不起作用

注意:这个listenere类是第三方API

【问题讨论】:

    标签: java weblogic


    【解决方案1】:

    你可以像 spring 一样在你的“web.xml”中添加一个监听器。

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    

    您也可以编写自己的类,该类必须实现

    javax.servlet.ServletContextListener
    

    作为监听器工作的接口。侦听器按照它们在 web.xml 中定义的顺序执行。

    我们使用这种模式在 servlet 上下文中创建 web 服务客户端。工作正常:)

    【讨论】:

    • 但正如我提到的,它不是一个普通的监听器,它是 ApplicationLifecycleListener 。你还认为这行得通吗
    • 是的,知道了。但是因为 ApplicationLifecycleListener 通常对 weblogic 或应用程序服务器非常特殊,所以 ContextLoaderListener 是我对你的最佳猜测。您可以对您的物品使用“contextInitialized”和“contextDestroy”方法。它应该和weblogics的“postStart”和“postStop”方法非常相似。
    【解决方案2】:

    如果您的 ApplicationLifecycleListener 实现了 ServletContextListener,那么您可以在 web.xml 中定义相同的类作为侦听器。就像 Stephan Watermeyer 建议的那样。link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 2015-12-07
      • 1970-01-01
      相关资源
      最近更新 更多