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发送 但我似乎无法得到我正在做的事情
答案 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 client和server examples。
如果您正在处理公共消息集,请考虑将您的绑定捐赠给JiBX架构库。
我希望这有帮助!
唐