0

我在一个类上使用 JAX-WS“WebService”注释将其“WebMethod”作为 Web 服务公开。该类表示为处理对“/MyService”的调用的 servlet 类。

作为本质上的一个 servlet,我希望这个类的一个实例被创建一次并且基本上是一个单例。我在此类的构造函数中有代码来创建一个 EntityManagerFactory 以分配给成员变量。我所看到的是,每个客户端对 Web 服务的请求都会调用构造函数。情况不妙。

有谁知道这里发生了什么?有谁明白我想问什么?:)

谢谢。

4

2 回答 2

0

作为本质上的一个 servlet,我希望这个类的一个实例被创建一次并且基本上是一个单例。

这取决于容器。你不能依赖它。

创建一个真正的单例——一个简单的 Java 类——它完成所有繁重的工作,并从 servlet 中调用它。

于 2009-09-25T18:04:27.043 回答
0

您的主题提到了一个 SLSB,我认为它是“无状态会话 Bean”。在 Java EE 5 中,您可以从无状态会话 Bean 创建 Web 服务,也可以注释一个类,当部署在兼容的 Web 容器中时,运行时会将其发布为 Web 服务。

在任何一种情况下,它们都不是 Servlet 本身,并且不遵循 Servlet 生命周期。

于 2009-09-25T16:57:44.710 回答