почему GlassFish и JBoss представляют разные WSDL?

#java #web-services #jboss #glassfish

#java #веб-сервисы #jboss #glassfish

Вопрос:

У меня есть веб-сервис, созданный на Java и развернутый на двух серверах приложений с именами «GlassFish» и «JBoss». теперь, когда мы получаем от них WSDL, каждый сервер приложений выдает другой формат WSDL, это .NET wsdl.exe инструмент генерирует разные объектные модели и прокси-классы. поэтому я не могу использовать один и тот же клиент.СЕТЕВЫЕ коды для вызова обеих веб-служб сервера приложений. в чем дело? что мне делать?

Спасибо.

Ответ №1:

Возможно, реализации JAX-WS и JAXB различны, следовательно, дают разные результаты. У вас есть два варианта:

  • будьте WSDL-first. Создайте свой WSDL и используйте его в качестве основы ваших сервисов. Однако перейти к этой парадигме будет сложно
  • Замените соответствующие jar (jax-ws / jaxb) на одном из серверов приложений на другие. Предпочтительно не заменять их централизованно, а настроить сервер приложений на использование новых (например, на glassfish поместить их в endorsed )

В конечном счете, я думаю, будет разумно использовать только один сервер приложений. Может возникнуть множество подобных проблем.

Ответ №2:

Я бы поспорил, что один работает с библиотеками Axis1, а другой использует Axis2, проверьте в wsdl сгенерированную спецификацию wsdl, которую они используют (посмотрите на prolog, часть в начале wsdl).

Кстати, вам следует подробно изучить спецификации wsdl, ваш сценарий выходит за рамки ваших теоретических знаний.

http://www.w3.org/TR/wsdl

http://www.w3.org/TR/wsdl20/