java - "Standardized"处理 Java EE 应用程序生命周期的方式

标签 java web-services jakarta-ee jboss7.x

在开发 Java EE 应用程序时,我经常遇到在应用程序启动、停止等时执行某些操作的“问题”。现在以 Weblogic 为例,有一种机制(应用程序生命周期监听器) .但是如果你想让你的应用程序远离应用程序的东西。特定于服务器,您必须找到不同的解决方案。有些人建议使用在启动时加载的 servlet,并“滥用”init()/destroy()

其他人说使用 ServletContextListener。对我来说,最后一个听起来最好(根据 ServletContextListener 的 java 文档。不幸的是,今天我尝试了 JBoss 7,其中 jax-ws webservices 似乎在任何其他 Servlet 之前被初始化,因此在 ServletContextListener 收到通知之前。

长话短说 - 我只是面临一些特定于应用程序服务器的问题 - 或者是否有任何“更合适”的标准化 Java EE 方式来注册东西,做东西,在任何网络服务,servlet 初始化之前?

最佳答案

如果你的网络服务是这样注释的

@javax.jws.WebService(...)
public interface YourServiceEndpoint

它们还不是真正的 servlet,但 JBoss (Jax-WS) 会将它们变成一个初创公司。

我正在使用 jboss-4.2.3,并且在我的 ServletContextListner 被调用之前我也收到了这些消息。

[org.jboss.wsf.framework.management.DefaultEndpointRegistry] register: jboss.ws:context=crm,endpoint=YourService

但我想知道,这个 web 服务是否在整个应用程序启动之前可用,因为在部署快结束时我收到以下消息

[org.jboss.wsf.stack.jbws.WSDLFilePublisher]  WSDL published to: ... YourServlet(..).wsdl

所以我猜,这是一个与 jboss 相关的问题。也许我们应该在另一个应用服务器上进行测试以证明这一点。

关于java - "Standardized"处理 Java EE 应用程序生命周期的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6787503/

相关文章:

java - 我应该为客户端-服务器 osgi 使用哪个库

java - 对于 SOAP,我们是否需要从 WSDL 生成客户端 stub ?

php - 如何编写在后台运行的异步 web 服务 php

c# - 使用 SharePoint Web 服务进行身份验证

java - 从绝对路径加载类

从 ArrayList 中删除时出现 java.lang.IndexOutOfBoundsException?

java - MVC架构中如何使用线程?

java - EJB3 业务逻辑模式与实践

java - servlet http post 和 put 方法之间的区别?

java - 如何在 hibernate 中使用继承时只获取一种实体?