如何在CXF Simple Frontend Service Class中访问HttpServletRequest

rya*_*yan 3 frontend cxf

所有

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

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

任何帮助,将不胜感激.

最好的祝福

nb.*_*iev 7

我想,你可以尝试类似的东西:

PhaseInterceptorChain.getCurrentMessage().get("...");
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助.

干杯!


Pau*_*nis 5

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

@Context 
private MessageContext context;

HttpServletRequest request = context.getHttpServletRequest();
Run Code Online (Sandbox Code Playgroud)

您将收到请求。

  • 除非您的服务bean是默认的单例,否则此方法有效。在那种情况下,您需要将上下文注入服务方法中,例如:foo(@Context MessageContext context,...)。 (2认同)