如何获得xml响应(CXFRs Web服务)?
我从uri中获取id,并将其作为条件放在sql请求中 在我将结果转换成XML格式之后 这就是功能:如何获得xml响应(CXFRs Web服务)?,xml,web-services,rest,apache-camel,cxfrs,Xml,Web Services,Rest,Apache Camel,Cxfrs,我从uri中获取id,并将其作为条件放在sql请求中 在我将结果转换成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 Test
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>
如何获取xml文档?谢谢?要使用cxfrs从驼峰路线返回xml,您需要一些东西: 在类和其他xml注释上用@XmlRootElement注释的客户对象,告诉jaxb如何封送它 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提供程序才能使用它。您使用的是什么版本的apache camel?您确定此错误不是由于浏览器试图将响应解释为XML而导致的,并且是无效的XML吗?我正在使用Jboss Fuse ESB
<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>