2014-03-30 25 views
0

如何从Camel API调用rest API(名称空间参数)。如何从骆驼调用Rest API [XML Namespace]?

我的REST API http://10.1.1.1:8080/rest/student/add/1029和实施看起来像

public String addStudent(@PathParam("studentId") int studentId, @Mapped(namespaceMap = { 
       @XmlNsMap(namespace = "student.details") 
}) JAXBElement<StudentType> studentData); 

我已经设置了主体内容的XML有效载荷和我总是得到空应答,当我尝试调用此API。 如何在Camel API中映射名称空间。这看起来像nameSpace问题。

这里是我的代码

from("direct:start") 
.setHeader(Exchange.HTTP_METHOD, simple("POST")) 
.setBody(simple("home\student.xml"))) 
.to("http://10.1.1.1:8080/rest/student/add/1029"); 

回答

0

我不认为简单( “家\ student.xml”)作为您可以加载XML。 您需要编写Java代码以从文件加载XML,并根据需要将其设置到消息正文中。

+0

感谢威廉,我花了差不多五天的时间才找到Content-Type不支持的结果。即使我为它设置了值,Conten-Type始终为空。您提到的论坛之一像“XXX”。即使我像你说的那样设定,问题仍然存在。你能给我一个IDEA来解决这个问题吗? (版本:2.X) –

+0

您可以在将请求发送到服务之前指定Accept标头,就像这样:setHeader(“Accept”,“text/xml”) –

+0

请参阅http://stackoverflow.com/questions/15947523/ apache-camel-enrich-message-with-file-content-on-request如何使用自定义处理器读取文件 –