当前位置: 首页 > 知识库问答 >
问题:

Camel Route jboss Fuse中Webservice对返回异常的处理

丁安宜
2023-03-14

1.我正在通过骆驼路由调用一个示例SOAP-WS,我只想在服务调用成功执行和服务调用不成功执行后获得http状态代码(响应代码,如200 OK

2.我正在通过骆驼路由调用一个示例REST-WS,我只需要在从服务调用成功执行和从服务调用不成功执行之后的http状态代码(响应代码,比如200OK),在这两种情况下,我们的业务逻辑都会被触发。我所尝试的

    //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));但它正在打印静态字符串“CamelHttpResponSecode”

2.我们想要区分成功的web服务执行和不成功的web服务执行,我们到底怎么做?

共有1个答案

史逸春
2023-03-14

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

您可以在调用CXF WS之前和之后使用tracer查看Camel消息包含哪些数据,这可以帮助您找出返回了哪些头等,您可以使用它来检查调用是否成功。

http://camel.apache.org/tracer

 类似资料:
  • 我一直在尝试编写一个Perl 6表达式,它执行以下逻辑:计算子表达式并返回其值,但是如果这样做导致引发异常,则捕获异常并返回固定值。 例如,假设我想将两个数字相除,如果发生错误,则表达式的计算结果为。我可以用Ruby写: 在Emacs Lisp中,可以写为: 我的第一次Perl 6尝试是这样的: 但是在这里,最终是未定义的,不管是否为零。 似乎忽略了返回的值,或者至少在描述异常如何工作的文档页面上

  • 本文向大家介绍spring boot请求异常处理并返回对应的html页面,包括了spring boot请求异常处理并返回对应的html页面的使用技巧和注意事项,需要的朋友参考一下 通过之前的学习,我知道中间件可以预处理http请求并返回相应页面(比如出现404异常,可以返回一个自己编写的异常界面,而非默认使用的白板404页面,很难看)。其实spring boot也提供了这样的功能。 404异常处理

  • 问题内容: 我发现以下行为至少 很奇怪 : 在子句中使用时,该异常消失。那是个错误吗?那在任何地方都有记录吗? 但是真正的问题(我将标记为正确的答案)是: python开发人员允许这种奇怪行为的原因是什么? 问题答案: 您询问了有关Python开发人员的推理。我不能为他们说话,但是没有其他行为可以理解。函数可以返回值,也可以引发异常。它不能同时做到。“最终”子句的目的是提供“保证”运行的清除代码,

  • 因此,我试图以通用的方式记录spring项目的控制器返回的所有未捕获的异常。我可以使用以下异常处理程序来完成此操作: 但是,对于方法的每次调用,由于方法中抛出的异常,会创建第二个错误日志:代码来自org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolveHandlerMethodExc

  • 我想做这样的东西: 这将不起作用,因为ifPresent将使用者函数接口作为参数,它具有void accept(t)。它不能返回任何值。还有别的办法吗?

  • 问题内容: 我有一个ScheduledThreadPoolExecutor,似乎正在吃异常。如果提交的Runnable引发异常,我希望我的执行者服务通知我。 例如,我希望下面的代码至少输出IndexArrayOutOfBoundsException的stackTrace 作为附带问题。有没有办法为ScheduledThreadPoolExecutor编写常规try catch块? ////////