Web服务中的处理异常在Camel Route jboss Fuse中

时间:2016-08-29 08:54:19

标签: web-services soap apache-camel jbossfuse

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?

1 个答案:

答案 0 :(得分:0)

默认情况下,SOAP错误不是异常。您可以在handleFault=true上启用<camelContext ...>,将SOAP错误转换为异常,Camel错误处理程序可以检测并处理/响应。

您可以使用跟踪器查看Camel消息在调用CXF WS之前和之后包含哪些数据,这可以帮助您找出返回的标题等,您可以使用它来检查成功与不成功调用。

http://camel.apache.org/tracer