我有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");
}
}
是否有针对每个请求运行的方法?
请帮帮我。
答案 0 :(得分:1)
我打赌@Stateless
可能是这里的罪魁祸首......
答案 1 :(得分:0)
使用EJB的构造函数通常不是一个功能(我认为它甚至不能在某些版本上调用)。它被@PostConstruct替换为能够在init之后使用注入。这说它无法解决你的问题。
您可以为您的服务声明一个Facade,它将委托给将是CDI bean @RequestScoped的EJB。同样的注意事项,使用构造函数注入或@PostConstruct来初始化它,但它是通过请求完成的;)