Java ApacheCamel:访问从WebService返回的原始数据(XML)
我正在使用ApacheCamel访问Web服务。 我试图将内容注入到从Web服务接收的数据中,以进行测试。 使用getBody(),我只能访问从接收的XML反序列化的Java对象。有人知道我如何在通过Camel反序列化之前访问原始XML吗 这是我的路线结构。如您所见,我创建了一个从BeaneAigateway到我正在查询的真实Web服务(BeanWebService)的代理Web服务Java ApacheCamel:访问从WebService返回的原始数据(XML),java,xml,apache-camel,transformation,webservice-client,Java,Xml,Apache Camel,Transformation,Webservice Client,我正在使用ApacheCamel访问Web服务。 我试图将内容注入到从Web服务接收的数据中,以进行测试。 使用getBody(),我只能访问从接收的XML反序列化的Java对象。有人知道我如何在通过Camel反序列化之前访问原始XML吗 这是我的路线结构。如您所见,我创建了一个从BeaneAigateway到我正在查询的真实Web服务(BeanWebService)的代理Web服务 from("cxf:bean:eaigateway") .routeId(ROUTE_ID_GA
from("cxf:bean:eaigateway")
.routeId(ROUTE_ID_GATEWAY)
.process(new EnrichBean())
.to(ENDPOINT_WEBSERVICE)
.process(new DisenrichBean())
;
from(ENDPOINT_WEBSERVICE)
.routeId(ROUTE_ID_WEBSERVICE)
.to("cxf:bean:webservice")
;
public class DisenrichBean implements Processor {
@Override
public void process(Exchange exchange) throws Exception {
// This contains the unserialized object returned from the webservice.
// But how to get and set the original XML content?
Object antwort = ((MessageContentsList)(exchange.getIn().getBody())).get(0);
}
}
原始信息应可从以下地址获得:
exchange.getUnitOfWork().getOriginalInMessage()
但在您的情况下,似乎需要对象/XML编组。
这里可以找到一些示例:在CXF配置中将
dataFormat
属性设置为PAYLOAD
。