1 即可。我通过camel路由调用SOAP-WS示例我只想在服务调用成功执行后,以及从服务调用执行不成功时获取http状态代码(响应代码如200 OK)
2。我通过驼峰路线调用示例REST-WS我只是想要从服务调用成功执行后获取http状态代码(响应代码如200 OK),并且执行不成功服务调用在这两种情况下,我们的业务逻辑都会被触发 我尝试了什么
//Camel-context <camelContext xmlns="http://camel.apache.org/schema/spring" handleFault="true">
<onException>
<exception>org.apache.cxf.binding.soap.SoapFault</exception>
<exception>java.lang.Exception</exception>
<handled><constant>true</constant></handled>
<bean ref="exceptionHandlerforWS"/>
</onException> <route>
<from uri="cxf:bean:ToStartRoute"/>
<bean ref="InputforWS"/>
<to uri="cxf:bean:factorial_WS"/>
<bean ref="OutputFromWS"/>
</route>
</camelContext>
// exceptionHandlerforWS Exception cause = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class);
if(cause.getMessage().contains("404")) { System.out.println("getting 404 from Service"); }
问题陈述:
1。我们应该如何从Web服务调用获取成功或失败案例中的http状态代码? 我甚至试过System.out.println((Exchange.HTTP_RESPONSE_CODE)); 但它是打印静态字符串&#34; CamelHTTPResponseCode&#34;
2。我们想要区分成功的Web服务执行和不成功的Web服务执行,我们究竟能做到这一点?
3. 如何处理骆驼路线中的SoapFault?
答案 0 :(得分:0)
默认情况下,SOAP错误不是异常。您可以在handleFault=true
上启用<camelContext ...>
,将SOAP错误转换为异常,Camel错误处理程序可以检测并处理/响应。
您可以使用跟踪器查看Camel消息在调用CXF WS之前和之后包含哪些数据,这可以帮助您找出返回的标题等,您可以使用它来检查成功与不成功调用。