Camel不会将故障识别为异常

时间:2013-03-01 09:13:32

标签: cxf apache-camel fuseesb

我遇到了Fuse ESB 7.1.0的一个非常奇怪的问题:当一个cxf端点产生故障时,这个故障看起来不像是一个例外,所以我无法处理它使用doCatch构造。 cxf端点定义如下:

<cxf:cxfEndpoint id="cxf-ep" address="${ws.url}" serviceClass="MyServiceClass">
    <cxf:properties>
        <entry key="dataFormat" value="POJO" />
    </cxf:properties>
</cxf:cxfEndpoint>

这是一个简短的代码片段,我希望有一个例外:

<doTry>
    <to uri="cxf:bean:cxf-ep" />
    <doCatch>
        <exception>org.apache.cxf.interceptor.Fault</exception>
        <handled>
            <constant>true</constant>
        </handled>
        <to uri="log:exceptions?multiline=true&amp;showCaughtException=true&amp;showStackTrace=true&amp;showBody=true&amp;showProperties=true&amp;showHeaders=true&amp;level=ERROR" />
    </doCatch>
</doTry>

我试图添加handleFault =&#34; true&#34;归因于驼峰上下文和路由,但没有成功。 具有类似参数和路由的捆绑包在Fuse ESB / ServiceMix 4.4.1上按预期工作,因此它看起来像回归或者新版本中的驼峰可能有所变化?

另一个有趣的时刻是,当一个Web服务器不可用时,camel会生成org.apache.cxf.interceptor.Fault,因此无法将其作为例外处理!

骆驼版:2.10.0.fuse-71-047

0 个答案:

没有答案