2014-09-12 187 views
0

最近,我有一个项目,它将使用FUSE骆驼路线接受XML作为POST有效载荷,并转换为Java对象。FUSE骆驼航线,任何想法解决这个问题

从(ENDPOINT_SAMPLE) .convertBodyTo(TestClass.class)

它想的XML来的TestClass对象转换,但识别TestClass是从第三方,它实现了一些接口,这会导致很多问题。如

2014-09-12 14:15:54,304 |警告| qtp1407394366-68 | AbstractJAXBProvider | ? ? | 170 - org.apache.cxf.cxf-rt-frontend-jaxrs - 2.7.0.redhat-610379 | com.sun.xml.bind.v2.runtime.IllegalAnnotationsException:3个IllegalAnnotationExceptions的计数 com.BBB.TestIF是一个接口,并且JAXB无法处理接口。在com.BBB.TestIF .......

我用惯了的XStream将XML转换自/至爪哇,它的接口工作,但: 这个问题涉及到以下位置JAXB不能这样做,因为这是由Camel内部处理的,所以我无法将其更改为XStream。 请分享您的经验或给我一些建议,我明白我可以模仿我自己的TestClass,但它可能不是最好的解决方案(因为它非常复杂)。 谢谢。

回答

1

如果xstream适合你,那你为什么不用xstream在骆驼上呢?

from("foo:bar").unmarshal().xstream().to("bar:foo"); 

http://camel.apache.org/xstream