2016-03-22 8 views
0

呼び出されたときに、IPアドレスを取得私は(Javaの6)このようなインターフェイスを実装することによって、単純なWebサービスを書いている:JWS - Webサービスが

import javax.jws.WebMethod; 
import javax.jws.WebService; 
import javax.jws.soap.SOAPBinding; 
import javax.jws.soap.SOAPBinding.Style; 

@WebService 
@SOAPBinding(style = Style.RPC) 
public interface MyWebService { 
    @WebMethod 
    String helloWorld(); 
} 

だから、私の具体的なクラスのようなものです:

方法 のhelloWorld(で今
import javax.jws.WebService; 

@WebService(endpointInterface="xxx", 
      portName="yyy", 
      serviceName="zzz") 
public class MyConcreteWS implements MyWebService { 
    @Override 
    public String helloWorld() { 
     // ... 
    } 
} 

、)はどのように私は、例えばIPアドレスのように、発信者に関する情報を取得することができますか?

私はサーブレットを開発していません。メインメソッドを持つ単純なjarです。

答えて

0

これがあなたのケースではうまくいくかどうかは確かですが、リソースWebServiceContextを注入してIPを取得することができます。

public class MyConcreteWS implements MyWebService { 
    @Resource WebServiceContext wsContext; 

    @Override 
    public String helloWorld() { 
     MessageContext mc = wsContext.getMessageContext(); 
     HttpServletRequest req = (HttpServletRequest)mc.get(MessageContext.SERVLET_REQUEST); 
     String ip = req.getRemoteAddr(); 
     // ... 
    } 
} 
+0

残念ながら、動作しません。オブジェクト* req *に対して* getRemoteAddr()*メソッドを呼び出すときに 'NullPointerException'を取得しています。 –