【问题标题】:Camel - Trying to marshall parameters with JIBX and send it to CXF-CAMEL endpointCamel - 尝试使用 JIBX 编组参数并将其发送到 CXF-CAMEL 端点
【发布时间】:2013-02-05 10:27:58
【问题描述】:

基本上我已经有了要发送的 XML-d 对象,多亏了 JIBX,我有了 WSDL 端点。我只是想把东西送到那个端点。这对我来说非常困难。

我想使用 POJO 模式,因为它看起来比其他模式简单得多,不涉及与 SOAP-Headers 混淆等等

POJO 模式似乎默认调用 JAXB,但我想使用 JIBX - 因为我正在与之交互的项目已经 JIBX 注释和

我想将 POJO 自动 JAXB 与我的 JIBX 交换,或者让我自己进行编组(我可以成功)并传递我的 xml 消息

from( "A" )
  .marshall().jibx() // works fine, and gives byte[] of marshalled object in In.body
  .process() {
      exchange.getIn().setHeader( CxfConstants.OPERATION_NAME, OPERATION);    
   }
   .to("cxf://SERVICE"
     + "?serviceClass=SERVICE_CLASS"
     + "&wsdlURL=SERVICE?wsdl"
     + "&dataFormat=POJO" );

然后它尝试在消息体上调用 Jaxb 并死掉。

我尝试将 byte[] 包装为字符串,并包装在列表中 并使用 dataformat=MESSAGE 发送 但我似乎无法得到我想要做的事情

【问题讨论】:

    标签: cxf apache-camel jibx


    【解决方案1】:

    用户1958722,

    我建议您查看 JiBX 网站和我的博客 blog.tourgeek.com 上的一些示例

    JiBX 有一个包含在 CXF 中的数据连接器。这意味着您只需在 spring bean.xml 文件中指定 jibx 数据连接器,JiBX 就会自动执行编组/解组。

    虽然 CXF 是 SOAP 服务器的一个很好的工具,但我发现它对于 SOAP 客户端有点难以使用。您可以使用 JiBX 客户端库为自己节省大量时间。它非常轻量级,因为它使用 javax.xml.ws.soap 包将您的消息打包到 SOAP 容器中。

    我建议阅读我在creating a SOAP client 上的帖子并查看一些sample client code in our repository

    JiBX schema library 有一些很棒的 web service clientserver examples

    如果您正在处理公共消息集,请考虑将您的绑定捐赠给 JiBX 模式库。

    我希望这会有所帮助!

    不要

    【讨论】:

    • 嗯,Spring,我的公司真的很想尽可能避免使用 Spring……这似乎令人沮丧我已经建立了到 SOAP 的连接,我已经收到了我的 XML 消息只是似乎无法弄清楚如何说服 CXF 将其放入。我将查看您发布的示例。谢谢
    猜你喜欢
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    相关资源
    最近更新 更多