在我的Web服务中,我有:

@WebService(serviceName = "myservice")
public class ServiceName{

    @Resource
    private WebServiceContext context;


在无状态类中,我想使用相同的操作:

@Stateless
public class MakeHappen{

 @Resource
        private WebServiceContext context;


但是我收到一个EJB异常。如何在Webservice之外注入此资源?

最佳答案

AFAIK否,仅在Web服务的上下文中。

Interface WebServiceContext


  WebServiceContext使Web服务端点成为可能
  访问消息上下文和安全性的实现类
  与正在处理的请求有关的信息。通常是
  WebServiceContext被注入到端点实现类中
  使用@Resource注释。


在您的情况下,您应该将无状态EJB装饰为Webservice。无状态EJB的开放方法可以表示为Web服务。

@Stateless
@WebService
public class MakeHappen {

@Resource
private WebServiceContext context;

...

10-05 18:53