JAX-WS(TomEE)Webservice构造函数只运行一次

时间:2014-03-11 13:16:27

标签: java constructor ejb jax-ws tomee

我有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 个答案:

答案 0 :(得分:1)

我打赌@Stateless可能是这里的罪魁祸首......

答案 1 :(得分:0)

使用EJB的构造函数通常不是一个功能(我认为它甚至不能在某些版本上调用)。它被@PostConstruct替换为能够在init之后使用注入。这说它无法解决你的问题。

您可以为您的服务声明一个Facade,它将委托给将是CDI bean @RequestScoped的EJB。同样的注意事项,使用构造函数注入或@PostConstruct来初始化它,但它是通过请求完成的;)