Я создал клиент веб-службы, используя утилиты JBoss (совместимые с JAX-WS), используя клиент веб-службы Eclipse из wsdl.
Итак, единственное, что я предоставил, это URL-адрес WSDL веб-службы.
Теперь поставщик веб-службы говорит мне изменить «URL-адрес доступа к приложению конечной точки клиента» веб-службы.
Что это такое и как это изменить?
java
web-services
jboss
jax-ws
ЕвгенийП
источник
источник
Ответы:
IMO, провайдер говорит вам изменить конечную точку службы (т.е. где добраться до веб-службы), а не конечную точку клиента (я не понимаю, что это может быть). Чтобы изменить конечную точку службы, у вас есть два варианта.
Используйте поставщик привязки, чтобы установить URL-адрес конечной точки
Первый вариант - изменить
BindingProvider.ENDPOINT_ADDRESS_PROPERTY
значение свойстваBindingProvider
(каждый прокси реализуетjavax.xml.ws.BindingProvider
интерфейс):Недостатком является то, что это работает только тогда, когда исходный WSDL все еще доступен. Не рекомендуется.
Используйте WSDL, чтобы получить URL-адрес конечной точки
Второй вариант - получить URL-адрес конечной точки из WSDL.
источник
wsimport
инструменты больше не генерируют код с помощьюget[Service]Port
метода. Вместо этого вызовитеget[Service]
и приведите результирующий объект к a,BindingProvider
чтобы установить такие свойства.Чтобы добавить здесь некоторые пояснения, при создании службы класс службы использует значение по умолчанию wsdlLocation, которое было вставлено в него, когда класс был построен из файла wsdl. Итак, если у вас есть класс обслуживания SomeService, и вы создаете такой экземпляр:
Если вы заглянете внутрь SomeService, вы увидите, что конструктор выглядит так:
Поэтому, если вы хотите, чтобы он указывал на другой URL-адрес, вы просто используете конструктор, который принимает аргумент URL-адреса (есть 6 конструкторов для установки qname и функций). Например, если вы настроили локальный монитор TCP / IP, который прослушивает порт 9999, и вы хотите перенаправить на этот URL:
и это вызовет этот конструктор внутри службы:
источник
Я бы не стал заходить так далеко до @Femi, чтобы изменить существующее свойство адреса. Вы можете легко добавлять новые службы в раздел определений.
Это не требует перекомпиляции WSDL для Java, и делать обновления не сложнее, чем если бы вы использовали параметр BindingProvider (который, кстати, у меня не сработал).
источник
Чтобы изменить свойство конечного адреса, отредактируйте файл wsdl
источник