我们可以使用Apache CXF通过SOAP调用检索请求者详细信息吗?

时间:2011-09-14 11:44:55

标签: java soap cxf

我们从各种系统获取服务器上的SOAP请求。在发送响应之前,我们需要向请求系统发出一些新请求以获取一些详细信息。为此,我们需要确定请求服务器的详细信息。有没有办法确定:   - 请求系统VIP   - 申请人IP   - 其他请求者特定细节

2 个答案:

答案 0 :(得分:0)

我假设Soap服务基于Http协议。您可以使用HttpServletRequest的getRemote ...()方法。但我不确定这些信息对您来说是否足够。另一种选择是要求客户在其请求中包含您需要的客户信息。

答案 1 :(得分:0)

如果您使用JAX-WS API,则可以使用WebServiceContext来检索邮件元数据。只需在您的实现中注入一个引用:

@WebService(name = "MyService" /*...*/)
public class MyService {

    @Resource
    private WebServiceContext wsc;

    @WebMethod
    public MyResponse process(MyRequest request) {
        HttpServletRequest httpRequest = (HttpServletRequest) wsc.getMessageContext().get(MessageContext.SERVLET_REQUEST);

        httpRequest.getRemoteAddr(); // access some parameters...

        return new MyResponse();
    }

}

它允许您访问通过HTTP请求发出的“一切”,如来电地址。