Мы пытаемся использовать SOAP-сервис (в приложении Java), который имеет разные конечные точки в среде prod и pre-prod. Мы создали клиентский код с помощью wsimport и пытаемся переопределить конечную точку с помощью поставщика привязки.Проблема с заменой конечной точки SOAP во время выполнения
Поставщик привязки отлично работает в среде pre prod (сгенерированный код был из pre prod environment wsdl). Но когда мы пытаемся выполнить тестирование в производственной среде, поставщик привязки не сможет переопределить конечную точку. В производственной среде он выбрасывает «Ошибка соединения, когда он пытается подключиться к pre prod». Мы узнали, что поставщик привязки нуждается в доступе для pre prod wsdl и prod wsdl для переопределения конечной точки. Из-за ограничений группы безопасности мы не можем получить доступ к proprod wsdl из prod.
Мы также попытались прочитать конечную точку, вызвав сервис из prod wsdl во время выполнения, но информация о портах в wsdl жестко закодирована на какой-то IP-адрес и не может быть изменена, и исправление prod wsdl не поддается контролю.
Есть ли другой способ переопределить конечную точку во время выполнения?
Я анализирую возможные решения с помощью UDDI и услуги шлюза. Есть ли еще какие-нибудь другие быстрые решения по кодированию? В настоящее время наше приложение не использует никаких шлюзов, и процесс UDDI также потребует нескольких утверждений, поэтому просто проверяйте, есть ли что-то быстрое. – user3452558
вы можете ссылаться на исходный код Axis2 и проверить, как он изменяет конечную точку перед вызовом. обратитесь к этому примеру и проверьте код Axis2 src: https://axis.apache.org/axis2/java/core/docs/userguide-creatingclients-xmlbeans.html – amitmah
Спасибо Amitmah за это предложение. У меня есть разрешение этой проблемы. На самом деле в автогенерированных файлах-заглушках был нечетный статический блок и статические параметры, что было основной проблемой. Мы буквально изменили автогенерированный код, перезаписали логику, прочитали кучу конструкторов и статические методы, которые мы не используем. Поэтому я нашел более быстрый способ, изменив файлы с автогенерированием и убедившись, что они не заменяются в развертываниях. Но все же спасибо за все ваши предложения, он открыл новые идеи, которые я буду продолжать изучать. – user3452558