我从uri获取id,并将其作为我的sql请求中的condiontion 我把结果放到XML格式后
这是功能:
package com.mycompany.camel.blueprint;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
public class Testws {
@GET
@Path("/test/{id}")
@Produces(MediaType.APPLICATION_XML)
public Integer getAssets(@PathParam("id") int id){
return id;
}
}
这是路线:
<camelContext id="camel" xmlns="http://camel.apache.org/schema/blueprint">
<route>
<from uri="cxfrs://bean://rsServer"/>
<log message="${body}"/>
<convertBodyTo type="java.lang.Integer"/>
<to uri="sql:select * from customers where id=:#${body}?exchangePattern=InOut&dataSource=moodleDB"/>
</route> </camelContext>
以下错误:http://localhost:5070/route/test/1
This page contains the following errors:
error on line 1 at column 1: Document is empty
Below is a rendering of the page up to the first error.
我怎样才能获得xml文档?谢谢?
答案 0 :(得分:0)
要使用cxfrs从驼峰路线返回xml,您需要做一些事情:
在cxf服务器中定义的xml提供程序,如下所示:
<cxf:rsServer id="rsServer" address="${url}">
<cxf:serviceBeans>
<bean class="com.mycompany.camel.blueprint.Testws"/>
</cxf:serviceBeans>
<cxf:providers>
<bean class="com.fasterxml.jackson.jaxrs.xml.JacksonJaxbJsonProvider"/>
</cxf:providers>
</cxf:rsServer>
您需要将SQL调用的响应处理为客户对象列表,然后cxf可以使用此提供程序将其编组为xml。
你需要依赖jackson-jaxrs-xml-provider才能使用它。