gpt4 book ai didi

java - 包含 XML 内容的 CXF Web 服务响应

转载 作者:数据小太阳 更新时间:2023-10-29 02:40:06 28 4
gpt4 key购买 nike

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

示例响应类型:PartyResponse -> PartyRec -> PartyInfoPartyInfo 结构在数据库中存储为 XML。

我如何返回来自 Java 的响应,插入 XML 部分而不用 JAXB 将其反序列化为 Java 对象,然后立即通过 CXF 将其再次序列化为 XML?

最佳答案

可以使用jaxws Provider的Payload方式。参见 http://cxf.apache.org/docs/provider-services.html

然后您的服务可以只返回一个 Source 对象,它只是一个通用的 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;
}
}

关于java - 包含 XML 内容的 CXF Web 服务响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30307087/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com