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

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

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

Пока я нашел:

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

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

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

1 Ответ

1 голос
/ 12 февраля 2011

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

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

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

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

...