Я столкнулся с той же проблемой, и это было ужасно, потому что когда код был перемещен в производство, он всегда искал жестко закодированное местоположение WSDL, то есть Windows C: ........ и т. Д.
У меня естьПролистали различные посты и страницы, чтобы найти ответ, но все не сработало, а потом нашел способ найти класс обслуживания, сгенерированный импортом JAX-WS.
Мне пришлось переопределить реализацию расположения JAX-WS WSDL вмой класс вызова такой:
URL baseUrl;
URL wsdlURL = null;
baseUrl = <your Services>.class.getResource(".");
try {
wsdlURL = new URL(baseUrl, "http://<your path>?wsdl");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
<your Services> yourServices = new <your Services(wsdlURL,new QName("your namespace", "<your service name>"));
System.out.println(Services.getWSDLDocumentLocation());
YourInterface YourInterfacePort = yourServices.getServicePort();
BindingProvider bindingProvider = (BindingProvider)YourInterfacePort;
bindingProvider.getRequestContext().put(
BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);
YourInterfacePort.methods ();