Есть ли способ сделать действия SOAP необязательными в реализации Java SOAP 1.1? - PullRequest
0 голосов
/ 06 ноября 2018

В настоящее время у нас есть целый набор реализаций службы SOAP 1.1, которым все равно, предоставляется ли действие SOAP. Они с радостью предпримут пустое действие SOAP и все еще будут работать нормально, каким-то образом связывая вызов с правильным методом.

У нас также есть новая реализация службы SOAP 1.1, которая абсолютно не будет работать без действия SOAP.

Проблема в том, что большинство клиентов ленивы и не предоставляют SOAP-действий, и хотя я хотел бы попросить их сделать это, в настоящее время это невозможно.

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

Наша контейнерная реализация - WAS 8.5.5.13, и мы запускаем Java 1.8, если это важно.

Спасибо, Питер

1 Ответ

0 голосов
/ 03 декабря 2018

Вы можете использовать эту библиотеку Java, которая позволяет обрабатывать SOAP исключительно на уровне XML.

Поддерживает следующее:

  1. Поддерживает WSDL 1.1
  2. Поддерживает SOAP 1.1 и 1.2
  3. Поддерживает все четыре варианта WS: кодированный rpc, литерал rpc, литерал документа и кодированный документ
  4. Поддерживает SSL и базовую аутентификацию
  5. Поддерживает SOCKS, HTTP и HTTPS прокси
  6. Поддерживает SpringFramework
  7. Поддерживает JUnit, Spock и Arquillian

Затем вы можете отправить конверт SOAP (в виде строки), вызвав метод post ():

 client.post(soapAction, envelope);

Вы также можете пропустить заголовок SOAPAction и отправить только конверт:

 client.post(envelope);

В противном случае реализация по умолчанию заставляет SOAPAction поле.

Из SOAP 1.1 документации :

Поле заголовка HTTP-запроса SOAPAction можно использовать для указания цели HTTP-запроса SOAP. значение - это URI, идентифицирующий намерение. SOAP не накладывает никаких ограничений на формат или специфика URI или то, что это разрешимо. HTTP клиент ДОЛЖЕН использовать это поле заголовка при выдаче HTTP-запроса SOAP.

soapaction = "SOAPAction" ":" [<"> URI-ссылка <">] URI-ссылка =

Наличие и содержимое поля заголовка SOAPAction может использоваться серверы, такие как брандмауэры для соответствующей фильтрации запросов SOAP сообщения в HTTP. Значение поля заголовка пустой строки ("") означает что цель сообщения SOAP обеспечивается HTTP Request-URI. Отсутствие значения означает, что нет указания на намерение сообщения.

Примеры:

SOAPAction: "http://electrocommerce.org/abc#MyMessage"
SOAPAction: "myapp.sdl"
SOAPAction: ""
SOAPAction:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...