3

全部

我通过参考 http://cxf.apache.org/docs/simple-frontend.html的官方文档,使用 CXF Simple Frontend 创建了一个简单的服务

我只是想知道如何在上面链接的示例中的服务实现类 HelloWorldImpl 的方法中访问 HttpServletRequest。

任何帮助,将不胜感激。

最好的祝福

4

3 回答 3

7

我想,您可以尝试以下方法:

PhaseInterceptorChain.getCurrentMessage().get("...");

要找到包含请求的确切密钥,请使用 - PhaseInterceptorChain.getCurrentMessage().keySet();。它应该包含类似 Http Request 的东西。

希望这可以帮助。

干杯!

于 2012-08-30T23:34:40.880 回答
5

您可以使用:org.apache.cxf.jaxrs.ext.MessageContextclass 来检索HttpServletRequest. 在您的实现中添加:

@Context 
private MessageContext context;

HttpServletRequest request = context.getHttpServletRequest();

你会得到请求。

于 2012-08-31T14:44:56.193 回答
3
@Resource
WebServiceContext wsContext;
@Context
private HttpServletRequest request;

private HttpServletRequest getRequest() {
    MessageContext mc = wsContext.getMessageContext();
    HttpServletRequest req;
    if (mc != null) {
        req = (HttpServletRequest) mc.get(MessageContext.SERVLET_REQUEST);
    } else {
        req = request;
    }
    return req;
}
于 2015-06-21T14:25:44.767 回答