Java 带有XML内容的CXF Webservice响应
我有一个现有的CXF Java Web服务,它返回一个深度、复杂、嵌套的响应类型。响应类型的一部分存在于数据库中,存储为普通XML消息(应该返回的XML内容完全相同) 响应类型示例: PartyResponse->PartyRec->PartyInfo PartyInfo结构以XML形式存储在数据库中Java 带有XML内容的CXF Webservice响应,java,xml,web-services,jaxb,cxf,Java,Xml,Web Services,Jaxb,Cxf,我有一个现有的CXF Java Web服务,它返回一个深度、复杂、嵌套的响应类型。响应类型的一部分存在于数据库中,存储为普通XML消息(应该返回的XML内容完全相同) 响应类型示例: PartyResponse->PartyRec->PartyInfo PartyInfo结构以XML形式存储在数据库中 我如何从Java返回响应,插入XML部分而不使用JAXB将其反序列化为Java对象,然后通过CXF再次将其序列化为XML?您可以使用jaxws提供程序的有效负载模式。 看 然后,您的服务可以只返回
我如何从Java返回响应,插入XML部分而不使用JAXB将其反序列化为Java对象,然后通过CXF再次将其序列化为XML?您可以使用jaxws提供程序的有效负载模式。 看 然后,您的服务可以只返回一个源对象,它只是一个通用XML对象。如下所示:
import javax.xml.transform.Source;
import javax.xml.ws.Provider;
import javax.xml.ws.Service;
import javax.xml.ws.ServiceMode;
import javax.xml.ws.WebServiceException;
import javax.xml.ws.WebServiceProvider;
@WebServiceProvider(serviceName="EchoService", portName="EchoPort")
@ServiceMode(value=Service.Mode.PAYLOAD)
public class EchoPayloadProvider implements Provider<Source> {
public Source invoke(Source request) throws WebServiceException {
// just echo back
return request;
}
}
import javax.xml.transform.Source;
导入javax.xml.ws.Provider;
导入javax.xml.ws.Service;
导入javax.xml.ws.ServiceMode;
导入javax.xml.ws.WebServiceException;
导入javax.xml.ws.WebServiceProvider;
@WebServiceProvider(serviceName=“EchoService”,portName=“EchoPort”)
@ServiceMode(值=Service.Mode.PAYLOAD)
公共类EchoPayloadProvider实现提供程序{
公共源调用(源请求)引发WebServiceException{
//回音
返回请求;
}
}
在这种情况下,我需要自己用JAXB序列化响应的其他部分,将其与从DB加载的XML片段合并,并以有效负载模式返回,对吗?