#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, ваш сценарий выходит за рамки ваших теоретических знаний.