Какой стандарт определяет, как поддержка MTOM / XOP должна указываться в WSDL?

Я добавляю поддержку вложений MTOM в существующую поддержку веб-сервисов на сервере приложений Home Grown. Инфраструктура веб-сервиса следует шаблону, аналогичному JavaEE5, аннотированные сервисы и объекты автоматически отображаются как веб-сервис с автоматическим созданием WSDL.

У меня есть фактический анализ и генерация, но я не смог определить, нужно ли мне обновить поколение WSDL, чтобы указать клиентам, что MTOM поддерживается и предпочтителен. Я нашел несколько противоречивых стандартов для того, чтобы указать поддержку MTOM, и я в растерянности относительно того, что используется в реальном мире.

Пока я нашел:

Насколько я вижу, W3c представляется более поздней версией XML Soap, однако они, похоже, используют другой элемент в другом пространстве имен для утверждения:

Мне также понравился случайный пост на форуме, который, кажется, указывает, что Glassfish использовал XML Soap. Стандарт W3C является черновиком, но, похоже, это черновик с 2007 года.

Кто-нибудь знает, какая из этих спецификаций обычно используется? Или просто игнорировать WSDL, когда дело доходит до MTOM?

1 ответ

Так как этот вопрос перевернулся, вот что я решил, если кто-нибудь еще наткнется на это.

Похоже, что спецификация W3C, на которую есть ссылка в оригинальном сообщении, застоялась, так как все еще находится в черновом варианте. Существует также спецификация W3C для WSDL2, которая включает в себя определенный атрибут, указывающий на поддержку MTOM, однако WSDL2, по-видимому, не используется в дикой природе.

В результате этого и указаний на то, что он используется Glassfish, я выбрал спецификацию XmlSoap, связанную с этим вопросом. Однако я на самом деле не нашел никаких инструментов или клиентов, которые действительно интерпретируют утверждение MTOM, скорее, клиентские инструменты, с которыми я сталкивался, просят вас явно указать, должны ли они MTOM кодировать запрос или нет. Поэтому включение этого утверждения представляется спорным вопросом.

Однако, предупреждающее слово, хотя JAX-WS, по-видимому, не использует утверждение MTOM, оно использует PolicyAssertions для безопасности. Наличие любых PolicyAssertions означает, что JAX-WS игнорирует любую явно указанную конфигурацию безопасности. Таким образом, указание утверждения MTOM без включения также утверждений безопасности предотвращает вызов веб-службы, если она защищена каким-либо образом. Я не уверен, относится ли эта проблема к другим клиентским инструментам.

Другие вопросы по тегам