【发布时间】:2013-01-04 05:34:56
【问题描述】:
我有一个 MDB EJB,里面有静态块。我使用静态块在应用程序第一次运行时(即部署时)只初始化一些组件一次。 MDB EJB 部署在除 Admin_Server 之外的单独服务器 (My_Server) 上。
问题是静态块被调用了两次!
- 第一次:在部署 MDB EJB(标记到 My_Server)之后。
- 第二次:在 JMS 队列(与 MDB 关联的)收到消息之后。
另外,我打印了服务器名称和 pid,两者都是一样的:
System.out.println("server name: " + System.getProperty("weblogic.Name"));
System.out.println("pid: " + ManagementFactory.getRuntimeMXBean().getName().split("@")[0]);
我还注意到一些奇怪的行为。基本上,我附加了一个 Shutdown Hook(从静态块内部)在应用程序关闭时向我发送电子邮件。
- 我在关闭 My_Server 后收到通知。
- 我在关闭 Admin_Server 后也会收到通知。
我该如何解决这个问题?
一些额外的信息:
Weblogic version: 10.3.0
EJB version: 3.0
【问题讨论】:
标签: java jakarta-ee weblogic ejb-3.0 classloader