Camel JAXB编组返回XML对象类型?

时间:2016-02-05 05:45:23

标签: apache-camel

我正在向生产者端点发送一个Java对象并等待编组的XML对象。我尝试将其更改为foreach ($results as $result) { // } object / File对象,但它正在提供Node

因此将xmlObj置于对象类类型中。什么应该是正确的类来捕获响应?

ClassCastException

上面是您用来将Java对象发送到生产者端点的客户端代码,因为您正在使用public class ClientEight { @Produce(uri = "direct:invoice") ProducerTemplate template; public static void main(String args[]) throws InterruptedException { AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("resources/camel-configTen.xml"); InvoiceXml invoice = new InvoiceXml("fdf3443", 3454, 435345.44 f, "hfhfddfdg"); //any java object we are passing ClientEight client = (ClientEight) ctx.getBean("client"); Object xmlObj = client.template.requestBody(invoice); System.out.println(xmlObj); } } ,所以您将返回返回的对象。

template.requestBody

1 个答案:

答案 0 :(得分:0)

unmarshall处理器返回一个流,而不是一个对象。在骆驼中,更一般地说,如果你想要一个特定的类型,你不应该直接将一个物体作为一个物体,而是使用各种方法将物体转换成那种类型。

尝试:

Document document = client.template.requestBody(invoice, org.w3c.dom.Document.class);