如何使用WebServiceTemplate发送SOAP请求?

我正在尝试向SOAP Web服务发送请求。我阅读了本教程并准备了以下代码。但是,我将向多个SOAP

Web服务发送不同的请求,而本教程只关注一个请求。如何使用发送SOAP请求WebserviceTemplate

    SoapMessage soapMsg = new SoapMessage();

soapMsg.setUsername("Requester");

soapMsg.setPassword("Pass");

soapMsg.setLanguageCode("EN");

Request request = new Request();

request.setDeparture("FDH");

request.setDestination("HAM");

Date date = new Date();

SimpleDateFormat frm2 = new SimpleDateFormat("yyyy-MM-dd");

request.setDepartureDate(frm2.parse(frm2.format(date)));

request.setNumADT(1);

request.setNumCHD(0);

request.setNumInf(0);

request.setCurrencyCode("EUR");

request.setWaitForResult(true);

request.setNearByDepartures(true);

request.setNearByDestinations(true);

request.setRronly(false);

request.setMetaSearch(false);

soapMsg.setRequest(request);

WebServiceTemplate webServiceTemplate = new WebServiceTemplate(). //how to create object and send request!

Object response = webServiceTemplate.marshalSendAndReceive(

"https://aaa5.elsyarres.net", soapMsg);

Response msg = (Response) response;

System.err.println("size of results of wogolo:"

+ msg.getFlights().getFlight().size());

回答:

您可以使用以下代码,而无需在xml文件中定义任何内容。

  try {

SaajSoapMessageFactory messageFactory = new SaajSoapMessageFactory(

MessageFactory.newInstance());

messageFactory.afterPropertiesSet();

WebServiceTemplate webServiceTemplate = new WebServiceTemplate(

messageFactory);

Jaxb2Marshaller marshaller = new Jaxb2Marshaller();

marshaller.setContextPath("PACKAGE");

marshaller.afterPropertiesSet();

webServiceTemplate.setMarshaller(marshaller);

webServiceTemplate.afterPropertiesSet();

Response response = (Response) webServiceTemplate

.marshalSendAndReceive(

"address",

searchFlights);

Response msg = (Response) response;

} catch (Exception s) {

s.printStackTrace();

}

以上是 如何使用WebServiceTemplate发送SOAP请求? 的全部内容, 来源链接: utcz.com/qa/415558.html

回到顶部