Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有XML内容的CXF Webservice响应_Java_Xml_Web Services_Jaxb_Cxf - Fatal编程技术网

Java 带有XML内容的CXF Webservice响应

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提供程序的有效负载模式。 看 然后,您的服务可以只返回

我有一个现有的CXF Java Web服务,它返回一个深度、复杂、嵌套的响应类型。响应类型的一部分存在于数据库中,存储为普通XML消息(应该返回的XML内容完全相同)

响应类型示例: PartyResponse->PartyRec->PartyInfo PartyInfo结构以XML形式存储在数据库中


我如何从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片段合并,并以有效负载模式返回,对吗?