首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Camel + sql +错误处理

Camel + sql +错误处理
EN

Stack Overflow用户
提问于 2014-05-19 08:28:58
回答 1查看 1K关注 0票数 0

我的任务是处理路由中的所有传入消息,并将它们保存到数据库中。我的路由从webservice (camel-cxf)开始,然后处理到ejb并返回soap响应。

我决定使用camel-sql组件。就我而言,在记录传入消息方面没有任何问题:

代码语言:javascript
复制
<camelContext id="InstitutionContext" xmlns="http://camel.apache.org/schema/spring">

    <onException>
        <exception>org.example.MyException</exception>
        <continued><constant>true</constant></continued>
        <to uri="bean:myExceptionHandler?method=handle" />
    </onException>

    <route id="InstitutionRoute" >
        <from uri="direct:start" />
        <to uri="sql:insert into translog(id,type,data) values(2,'IN',#)" />
        <split>
            <tokenize token="\n" />
            <unmarshal>
                <csv delimiter=";" />
            </unmarshal>
            <process ref="InstitutionProcessorTest" />
        </split>
        <to uri="bean:myExceptionHandler?method=checkErrors" />
    </route>

</camelContext>

但我不知道如何处理异常并以SOAP消息的形式保存它们。

代码语言:javascript
复制
<onCompletion onFailureOnly="true">
    <to uri="sql:insert into translog(id,type,data) values(2,'ERROR',#)" />
</onCompletion> 

但是它将原始消息保存在数据列中。有谁能帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2014-05-20 03:47:55

我可能误解了这个问题,但如果有异常,您似乎正在尝试以XML格式保存SOAP消息。

默认情况下,CXF的dataFormat是POJO,这意味着它在camel路由周围发送POJO,即SOAP被转换为POJO。

我想到了两个选择:

  1. 将数据格式设置为消息或有效负载。这将通过骆驼路由发送XML消息,而不是POJO。
  2. 将POJO发送到XML消息并保存它。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23733065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档