Распаковка конверта SOAP из файла в Java - PullRequest
4 голосов
/ 22 сентября 2010

Я хочу провести модульное тестирование объектов сопоставления, которые отображают / переводят типы веб-служб, сгенерированные wsimport, в мои собственные доменные объекты. Я также хочу протестировать сценарии ошибок, такие как ошибки SOAP и т. Д., И я думаю, что было бы лучше всего протестировать объекты сопоставления на подлинные ответы SOAP. Я не хочу отправлять запросы самому веб-сервису, поскольку для этого требуется доступ к веб-сервису, и для каждого теста требуется время туда-обратно.

Учитывая этот сценарий, я пытаюсь демонтировать сообщения SOAP из определенного XML-файла, содержащего конверт SOAP. Я хочу разархивировать конверт SOAP и, в свою очередь, полезную нагрузку в теле для соответствующих типов Java.

Мне удалось разархивировать саму полезную нагрузку с помощью демаршаллинга JAXB, но я не нашел способа разрешить мне обрабатывать ответы SOAP с ошибками SOAP аналогичным образом.

Существует ли подход, при котором XML-файл конверта SOAP позволил бы мне легко тестировать свои средства отображения?

1 Ответ

3 голосов
/ 09 мая 2012

Вы пробовали стандартный API Java SOAP (javax.xml.soap)?

Примерно так:

  MessageFactory mf = MessageFactory.newInstance();
  SOAPMessage message = mf.createMessage();
  SOAPPart soapPart = message.getSOAPPart();
  FileInputStream is = new FileInputStream(file);
  soapPart.setContent(new StreamSource(is));
...