Soap 调用无法处理的服务时收到sun.net.www.protocol.http.httpurlconnection$httpinputstream作为响应
我正在用ApacheCamel开发工作流应用程序 业务用例:Soap 调用无法处理的服务时收到sun.net.www.protocol.http.httpurlconnection$httpinputstream作为响应,soap,apache-camel,cxf,jbossfuse,cxf-client,Soap,Apache Camel,Cxf,Jbossfuse,Cxf Client,我正在用ApacheCamel开发工作流应用程序 业务用例: 服务在使用者端点公开 使用请求消息进行处理 调用外部SOAP服务,获取响应 检查响应xml中的特定标记,然后只调用另一个外部SOAP服务 将最终响应返回给客户端 现在我陷入了第四步 我的骆驼路线是 <camelContext xmlns="http://camel.apache.org/schema/spring"> <route streamCache="true"> <from
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route streamCache="true">
<from uri="cxf:bean:proxyEndpoint"/>
<process ref="myProcessor"/>
<!-- processing request & logging -->
<setBody>
<!-- set request as body required for calling external web service -->
</setBody>
<to uri="cxf:bean:panEndpoint"/>
<!-- <to uri="file:C:/LOG" /> -->
<!-- <process ref="myProcessor2"/> -->
<log message=">>> ${body}" loggingLevel="INFO"/>
</route>
</camelContext>
我可以调用外部服务,但在
之后,如果我尝试记录正文,我会得到相同的任意值,以防路由到文件
当我尝试路由到处理器并打印System.out.println(exchange.getIn().getBody())时代码>
我得到的sun.net.www.protocol.http.httpurlconnection$httpinputstream
无法解析或处理
当我试图使用TCP-IP监视器监视场景时,调用了外部服务并接收到正确的响应
任何帮助都将不胜感激。告诉Camel您希望身体是什么类型的,它使用其类型转换器来实现这一点(如果可能的话)
因此,如果希望主体作为InputStream
do
exchange.getIn().getBody(InputStream.class)
如果你想让它成为字符串,那就做吧
exchange.getIn().getBody(String.class)
在这里阅读更多
在使用流时,请注意流缓存
我在调试应用程序,所以我调试了System.out.println(exchange.getIn().getBody(String.class));但正如我前面所说,它给了我任意的值,如下图所示:@???{???{???;?N'??\fd☺l??J??!???▼?~|▼?"▲?▲?▬ez?MQ-?hw?Q?/?X^ |?=?>?8z?T?2/?U+??◄>??Y▲??L???“k???§>▼还有其他建议吗?