【问题标题】:Header of SOAP message modified by JBOSS-REMOTINGJBOSS-REMOTING 修改的 SOAP 消息头
【发布时间】:2014-08-26 18:10:56
【问题描述】:

我使用 APACHE-CXF 开发了一个客户端服务,以从我们的应用程序中使用外部网络服务。一切顺利: - 从 wsdl 生成的类 - 在使用 SOAPUI 进行简单的主测试或本地测试时,该调用运行良好。

但是当我部署我们服务器的源 (JBOSS 5.1) 时,调用失败。我打印了肥皂请求:

POST /ws/TET_DOC
SOAPAction: "http://www.testDoc.be/testDoc/getDoc"
Content-Type: text/xml; charset=UTF-8
JBoss-Remoting-Version: 22
User-Agent: JBossRemoting - 2.5.1 (Flounder)
Host: post.netpost:55405
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
Transfer-Encoding: chunked

问题来自属性:ACCEPT。它已被 JBOSS-REMOTING 修改。应该是:

Accept: text/xml, multipart/related, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

所以我有两个问题:

  1. 为什么jboss更改了消息的“accept”属性?
  2. 如何设置objboss端的“accept”属性?我预先尝试了这个(在调用操作之前,但它不起作用):

    final Map<String, List<String>> requestHeaders = new HashMap<String, List<String>>();
    requestHeaders
        .put(
            "Accept",
            Arrays
                .asList("text/html, multipart/related, image/gif, image/jpeg, *; q=.2, */*; q=.2"));
    ((BindingProvider)port).getRequestContext().put(
        MessageContext.HTTP_REQUEST_HEADERS, requestHeaders);
    

提前感谢您的帮助

【问题讨论】:

    标签: java soap jboss cxf soap-client


    【解决方案1】:

    哇!!终于我可以解决问题了:花3天时间pffff!!!

    我们正在使用带有 JDK6 的 JBOSS 5.1,我不知道为什么,从 jboss 获取的本地类而不是从 JDK 获取的类。 即使我将一些新的 apache-cxf 库添加到 $JBOSS_HOME/common/lib--> 我最终还是在客户端代理上遇到了强制转换错误。

    解决方案:

    我清理了所有内容并从头开始:

    1. 在我的服务器中安装 jbossws-cxf (JBOSS 5.1)
    2. 将一些库放入 $JBOSS_HOME/lib/endorsed:woodstox 的最新版本(否则,您将遇到“无法创建安全 XMLInputFactory”)

    现在一切正常:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多