我正在尝试调用在我的机器外部运行的外部Web服务,并且我使用camel框架编写了路由逻辑
路由代码:
from("direct:test1").process(new Processor() {
@Override
public void process(Exchange arg0) throws Exception {
arg0.getOut().setBody("testmessage");
}
}).to("cxf://http://localhost:8085/FinEdge-General/xrmServices/2011/Organization.svc?serviceClass=com.hcl.flsl.integration.msdn.crmwcf.IOrganizationService&defaultOperationName=Retrieve")
但是当我执行程序时,我收到以下错误。
错误
org.apache.cxf.transport.http.HTTPException:HTTP响应'415: 无法处理消息,因为内容类型为'text / xml; charset = UTF-8'不是预期的类型'application / soap + xml; 字符集= UTF-8' 。”与...沟通时 \\ HTTP://本地主机:端口/ FinEdge总/ xrmServices / 2011 / Organization.svc
注意:Web服务是在.NET(WCF)和SOAP 1.2中开发的。
答案 0 :(得分:2)
看起来CXF正在使用SOAP 1.1发送消息,您需要通过应用WSDL文件让它切换到SOAP 1.2,因为您使用的serviceClass没有该信息。
顺便说一句,您可以找到SOAP 1.1消息和SOAP 1.2消息here之间的区别。