2015-05-08 55 views
1

在我的Web服務,我有:使用WebServiceContext以外的WebService

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

    @Resource 
    private WebServiceContext context; 

在無狀態的類我想用同樣的操作:

@Stateless 
public class MakeHappen{ 

@Resource 
     private WebServiceContext context; 

但是我收到一個EJB異常。我如何在webservice之外注入此資源?

+0

什麼樣的信息特別是你想從'WebServiceContext' – kolossus

+0

你已經回答了我的問題搞定;) – Goldbones

回答

1

AFAIK否,僅在Web服務的情況下。

Interface WebServiceContext

一個WebServiceContext它使一個web服務端點 實現類訪問消息上下文信息相對安全的 的請求被服務。通常使用@Resource註釋將 WebServiceContext注入到端點實現類 中。

就你而言,你應該將無狀態的EJB裝飾成Webservice。無狀態EJB的開放方法可以表示爲Web服務。

@Stateless 
@WebService 
public class MakeHappen { 

@Resource 
private WebServiceContext context; 

... 
+0

有一個類似的對象可以在ejb容器上使用的webservicecontext? – Goldbones

+0

我覺得沒有。 「WebServiceContext」的功能僅在web服務的上下文中有意義。 –

+0

關於,我的最後一個問題-http://stackoverflow.com/questions/30105806/add-path-parameters-to-response-fields/30106595 #30106595,可以使用一些上下文來確定我的請求路徑及其參數嗎? – Goldbones

0

我有the same problem,這是我如何解決它:

WebServiceContext wscontext = null; 
try { 
    Context ctx = new InitialContext(); 
    wscontext = (WebServiceContext) ctx.lookup("java:comp/WebServiceContext"); 
} catch (NamingException e) { 

}