Camel - 尝试使用JIBX对参数进行编组并将其发送到CXF-CAMEL端点

时间:2013-02-05 10:27:58

标签: cxf apache-camel jibx

Basiaclly我已经有了要发送的XML-d对象,感谢JIBX,我有了WSDL端点。我只想把这个东西拿到那个端点。这对我来说非常困难。

我想使用POJO模式,因为它看起来比其他模式更简单,不涉及弄乱SOAP-Headers,等等

POJO模式似乎默认调用JAXB但我想使用JIBX - 因为我正在接口的项目已经注释了JIBX并且

我想将POJO自动JAXB-ing与我的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 []包装为String,并将其包装在List中 并使用dataformat = MESSAGE发送 但我似乎无法得到我正在做的事情

1 个答案:

答案 0 :(得分:0)

user1958722,

我建议您查看JiBX网站和我的博客blog.tourgeek.com

上的一些示例

JiBX有一个CXF附带的dataconnector。这意味着您所要做的就是在spring bean.xml文件中指定jibx dataconnector,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架构库。

我希望这有帮助!