我使用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
所以我有两个问题:
如何设置"接受"属性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);
提前感谢您的帮助
答案 0 :(得分:0)
WAW !!最后我可以解决问题:花3天就可以了!pfff !!!
我们正在使用JBOSS 5.1与JDK6,我不知道为什么,jboss的本地类正在被取而不是来自JDK的本地类。 即使我将一些新的apache-cxf库添加到$ JBOSS_HOME / common / lib - &gt;我最终在客户端代理上出现了投射错误。
解决方案:
我清理了所有东西并从头开始:
现在一切正常:)