jax ws(tomee)webservice构造函数只运行一次

93ze6v8z  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(310)

我有jax-ws-webservice,我想为每个请求运行一个方法。
我假设我的构造函数为每个请求运行,但它只运行一次。
我认为这是因为我使用线程池。我的源代码是:

@Stateless
@WebService(
    portName = "APIPort",
    serviceName = "APIService",
    targetNamespace = "http://telc.ir/wsdl",
    endpointInterface = "wsAPI.APIWS")
public class API implements APIWS {

    @Resource
    WebServiceContext wsContext;

    public API() {
        System.out.println("Webservice Called");
    }
}

是否有任何方法在每个请求上运行?
请帮帮我。

piok6c0g

piok6c0g1#

我敢打赌 @Stateless 可能是罪魁祸首。。。

zsohkypk

zsohkypk2#

为ejb使用构造函数通常不是一个特性(我认为在某些版本上甚至不能调用它)。它被@postconstruct替换,以便能够在init之后使用注入。也就是说这不能解决你的问题。
您可以为您的服务声明一个facade,它将委托给ejb,ejb将是cdibean@requestscoped。请注意,使用构造函数注入或@postconstruct初始化它,但这是通过请求完成的;)

相关问题