【问题标题】:Intercept HTTP response with CXF使用 CXF 拦截 HTTP 响应
【发布时间】:2013-09-24 08:20:44
【问题描述】:

我使用 CXF 作为 SOAP 框架。 我有用于同步和异步调用的服务器和客户端接口。

我需要的是拦截 HTTP 响应。更详细:

  • 对于服务器接口(双向 - 同步): 我需要拦截客户端 HTTP 响应(即 200,如果一切正常)

  • 对于客户端界面(一种方式 - 无肥皂响应): 和上面类似,我需要拦截服务器的HTTP响应

我尝试同时配置 inInterceptor 和 outInterceptor,但我只能看到 inBound 和 outBound 肥皂消息。相反,我需要的是查看出站消息的 HTTP 响应。

提前致谢。

【问题讨论】:

  • 你是说@InInterceptor 和@OutInterceptor?你需要什么 HTTP 标头?例如,如果服务器返回 500,则您有异常。
  • 是的。我可以处理异常并查看返回码。如果没有抛出任何异常(即每 2xx 次),我想在成功的情况下做同样的事情

标签: java web-services soap cxf


【解决方案1】:

你试过 ReadHeadersInterceptor 吗? 您是否尝试过以编程方式和配置添加拦截器。 这里的例子 - http://cxf.apache.org/docs/interceptors.html

如果您真的在关注 HTTP 标头而不是 SOAP,那么您可能不需要 SOAP 来完成它。您可以直接阅读它们。检查这些示例

【讨论】:

    【解决方案2】:

    也许现在回答还为时不晚 :-)

    我遇到了同样的问题,调试后我发现 CXF 客户端在从输入流中读取响应实体之前运行拦截器。 因此,获得响应的唯一方法是:

    InputStream is = inMessage.getContent(InputStream.class)
    

    阅读并编组适当的响应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多