我有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");
}
}
是否有任何方法在每个请求上运行?
请帮帮我。
2条答案
按热度按时间piok6c0g1#
我敢打赌
@Stateless
可能是罪魁祸首。。。zsohkypk2#
为ejb使用构造函数通常不是一个特性(我认为在某些版本上甚至不能调用它)。它被@postconstruct替换,以便能够在init之后使用注入。也就是说这不能解决你的问题。
您可以为您的服务声明一个facade,它将委托给ejb,ejb将是cdibean@requestscoped。请注意,使用构造函数注入或@postconstruct初始化它,但这是通过请求完成的;)