Я пытаюсь разработать SOAP клиент на основе JAX-WS 2.3.0
и, хотя я могу создать экземпляр самого класса заглушки, он всегда сталкивается с ошибкой 404
при вызове одного из методов службы. Причина, по которой это происходит, заключается в том, что когда я создаю клиента, JAX-WS
внутренне удаляет часть URL службы. Это означает, что я создаю экземпляр клиента следующим образом:
URL url = new URL("http://host/GETSREMOVED/testService/services/testServiceEndpoint");
TestServicePortType client = new TestService(url).getTestServicePortTypePort();
, где TestServicePortType
и TestService
- это классы, которые автоматически генерируются с помощью инструмента JAX-WS wsimport
из файла wsdl
. Если я смотрю на объект клиента во время отладки, я вижу что-то вроде этого:
JAX-WS RI 2.3.0 svn-revision#3528ea595bd29309f69172d231bbce272d21035c: Stub for http://host/testService/services/testServiceEndpoint
Как вы можете видеть, часть GETSREMOVED/
удалена из URL, поэтому клиент делает свои звонки на другой адрес и, очевидно, сталкивается с ошибкой 404
.
У меня нет контроля над службой, потому что она не разработана моей компанией. Услуга сделана в стиле DOCUMENT
и привязке LITERAL
soap, что, насколько я знаю, является путем к go с JAX-WS
.
Может кто-нибудь объяснить мне, почему это происходит? Что-то не так с моим использованием wsimport
или способом, которым я создаю экземпляр объекта client? К сожалению, я не могу опубликовать конкретный URL службы или wsdl здесь, но, возможно, у кого-то еще есть идея, что может быть причиной этой проблемы.