Обертка SOAP вокруг существующего сервиса RESTful в Джерси - PullRequest
1 голос
/ 09 февраля 2011

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

Недавно мы обнаружили, что наши клиенты поддерживают только SOAP.

Существует ли способ легко написать оболочку SOAP поверх этого?(Я упоминал о Муле, но никогда не использовал его)

Или было бы проще начать с нуля и переписать в SOAP?

Я совершенно новичок в SOAP, и это выглядит намного сложнеечем мой опыт с Джерси.Спасибо!

1 Ответ

0 голосов
/ 02 марта 2011

Самый простой способ - предоставить единственный метод, который принимает XML в виде строки, анализирует его и возвращает документ XML (снова в виде строки).

public class Receiver  { 
  public String postXML(String inputDocument) {
    // parse and process XML xml 
    ...
    return outputDocument.toString(); 
  }
... 
}

Вы должны иметь возможность использовать этот метод в службе Джерси, если это необходимо путем делегирования в отдельный класс.Создать SOAP-сервис вокруг объекта фасада, как это должно быть легко с помощью soap: http://axis.apache.org/axis/java/index.html

Технически превосходное решение состоит в том, чтобы декомпозировать ваш XML в объектно-ориентированный объект передачи данных или реализовать SOAP-сервис с, например, документом./ буквальный обмен сообщениями.Первый может просто добавить стоимость без стоимости, в зависимости от вашей ситуации.Последнее может даже не поддерживаться вашими партнерами.Для обсуждения стилей обмена сообщениями SOAP см .:

http://msdn.microsoft.com/en-us/library/ms996466.aspx#rpc_literal_topic3

...