如何获得xml响应(CXFRs Web服务)?

如何获得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

我从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 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&amp;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>