我正在创建一个springws项目,它将数据发送到soapwebservice并记录其响应。
我首先创建了以下两个类:`
客户端
public class SaveRecordClient extends WebServiceGatewaySupport {
public SaveRecordResponse sendMatReq() {
String dataServerName = "movimento";
String xml = "";
String contexto = "codact=23;codmain='YSD'";
JAXBElement<String> dSName = new JAXBElement<String>(QName.valueOf("xml"), String.class, xml);
JAXBElement<String> conteudo = new JAXBElement<String>(QName.valueOf("dataServerName"), String.class, dataServerName);
JAXBElement<String> context = new JAXBElement<String>(QName.valueOf("context"), String.class, contexto);
SaveRecord request = new SaveRecord();
request.setContexto(context);
request.setDataServerName(dSName);
request.setXML(conteudo);
SaveRecordResponse response = (SaveRecordResponse) getWebServiceTemplate()
.marshalSendAndReceive(request);
return response;
}
}
客户端配置
@Configuration
public class SaveRecordConfig {
@Bean
public Jaxb2Marshaller marshaller() {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setContextPath("com.mycompany.myproject.wsdl");
return marshaller;
}
@Bean
public SaveRecordClient countryClient(Jaxb2Marshaller marshaller) {
SaveRecordClient client = new SaveRecordClient();
client.setDefaultUri("http://address-from-soap-address-property-in-wsdl");
client.setMarshaller(marshaller);
client.setUnmarshaller(marshaller);
return client;
}
}
在“xml”字符串变量中,我必须 <![CDATA[
满足于它。
此内容必须是另一个具有以下结构的xml:
<DATA>
<DATACONTENT>
<DATA-PROPERTY1></DATA-PROPERTY1>
<DATA-PROPERTY2></DATA-PROPERTY2>
<DATA-OBJECT>
<DATA-OBJECT-PROP-1></DATA-OBJECT-PROP-1>
<DATA-OBJECT-PROP-2></DATA-OBJECT-PROP-2>
<DATA-OBJECT-PROP-3></DATA-OBJECT-PROP-3>
</DATA-OBJECT>
<DATA-OBJECT>
<DATA-OBJECT-PROP-1></DATA-OBJECT-PROP-1>
<DATA-OBJECT-PROP-2></DATA-OBJECT-PROP-2>
<DATA-OBJECT-PROP-3></DATA-OBJECT-PROP-3>
</DATA-OBJECT>
</DATACONTENT>
</DATA>
我的问题是:
如何将一个@entity类转换为上面的xml结构?一个dto类做这个工作吗?有没有什么 Spring 医生能解释怎么做?
我应该遵循哪些步骤来将<[cdata[?有什么我能读懂的东西知道怎么做吗?
抱歉,我来自使用json的restfulapi,我发现使用soapwebservices太难了
暂无答案!
目前还没有任何答案,快来回答吧!