由JBOSS-REMOTING修改的SOAP消息头

时间:2014-08-26 18:10:57

标签: java soap jboss cxf soap-client

我使用APACHE-CXF开发了一个客户端服务,以便从我们的应用程序中使用外部webervice。一切都很顺利: - 从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改变了属性"接受"消息?
  2. 如何设置"接受"属性ob jboss方面?我提前尝试了这个(在调用操作之前但它没有工作):

    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);
    
  3. 提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

WAW !!最后我可以解决问题:花3天就可以了!pfff !!!

我们正在使用JBOSS 5.1与JDK6,我不知道为什么,jboss的本地类正在被取而不是来自JDK的本地类。 即使我将一些新的apache-cxf库添加到$ JBOSS_HOME / common / lib - &gt;我最终在客户端代理上出现了投射错误。

解决方案:

我清理了所有东西并从头开始:

  1. 在我的服务器(JBOSS 5.1)中安装jbossws-cxf
  2. 在$ JBOSS_HOME / lib / endorsed中添加了一些库:woodstox的最新版本(否则,您将遇到&#34;无法创建安全的XMLInputFactory&#34;)
  3. 现在一切正常:)