有没有办法在我的EAR部署之后执行一个类的方法?
在 EAR 中没有 WebProject。
我知道在 WebProject 中使用 ServletContextListener 的可能性,但如果有办法,我想在 EAR 或 EJB-jar 中配置它。
有没有办法在我的EAR部署之后执行一个类的方法?
在 EAR 中没有 WebProject。
我知道在 WebProject 中使用 ServletContextListener 的可能性,但如果有办法,我想在 EAR 或 EJB-jar 中配置它。
没有部署后选项,我正在回答这个问题,假设您希望在部署后在服务器启动时运行一些逻辑。
您可以使用Startup Beans,它是一个 WebSphere 编程扩展。
如果您计划迁移到更新的版本(如 WAS 8 或 8.5),请注意一点;此功能(启动 bean)成为 EJB 3.1 规范的一部分,因此所有支持此规范级别的服务器,包括 WebSphere,都已具有指定的此功能,因此不推荐使用此功能,您应该更喜欢 EJB3.1 指定的解决方案。
我对这个问题的理解:
有没有办法在我的EAR部署之后执行一个类的方法?
是您希望在管理员部署应用程序后立即或立即执行方法,而不管其类型和内容如何。我对您的需求的理解是,您希望它适用于仅安装应用程序且尚未启动的情况,其中不包括 Java EE API,例如带有 -1、ServletContextListeners 或 Startup Beans 的 servlet。如果这是正确的,请继续阅读。
我认为您可能希望使用 JMX 作为一种从您的自定义客户端管理 WebSphere Application Server 的方法。
根据开发管理客户端程序:
4 注册活动。
除了管理资源之外,JMX API 还支持对特定管理事件的应用程序监控。某些事件会产生通知,例如,当服务器启动时。管理应用程序可以注册为这些通知的侦听器。WebSphere Application Server 提供了 JMX 通知模型的完整实现,并提供了附加功能,以便您可以在分布式环境中接收通知。有关从产品 MBean 发出的通知的完整列表,请参阅 MBean API 文档中的 com.ibm.websphere.management.NotificationConstants 类。
我认为它值得关注,实际上回答了这个问题。
查看com.ibm.websphere.management.NotificationConstants的 javadoc,您可能会发现TYPE_APPMANAGEMENT_INSTALL常量是
应用程序安装事件的通知类型
虽然我自己还没有尝试过,但我认为 WebSphere MBeans 和 JMX Notification 是要走的路。