В вашем сгенерированном коде (например, скажем, «HelloWorldWebServiceImplService») посмотрите на статический блок вверху, который будет иметь ссылку на файл WSDL url или wsdl, который находится в META-INF.
/*
static {
URL url = null;
try {
url = new URL("http://loclahost/HelloWorld/HelloWorldWebServiceImpl?wsdl");
} catch (MalformedURLException e) {
java.util.logging.Logger.getLogger(HelloWorldWebServiceImplService.class.getName())
.log(java.util.logging.Level.INFO,
"Can not initialize the default wsdl from {0}", "http://loclahost/HelloWorld/HelloWorldWebServiceImpl?wsdl");
}
WSDL_LOCATION = url;
}
*/
После того, как вы прокомментируете это, вам также нужно закомментировать застройщика по умолчанию, и не нужно говорить, что инициализируйте static WSDL_LOCATION = null; (к нулю)
Таким образом, у вас не будет двух конструкторов, как показано ниже.
public final static URL WSDL_LOCATION = null;
public HelloWorldWebServiceImplService(URL wsdlLocation) {
super(wsdlLocation, SERVICE);
}
public HelloWorldWebServiceImplService(URL wsdlLocation, QName serviceName) {
super(wsdlLocation, serviceName);
}
Вызов веб-сервиса: Теперь в клиентском вызове, где вы создаете экземпляр этого объекта, передайте URL-адрес веб-сервиса в качестве аргумента, как показано
//You can read mywebserviceURL from property file as String.
String mywebserviceURL = "http://myqamachine.com/HelloWorld/HelloWorldWebServiceImpl?wsdl"
URL WsURL = new URL(mywebserviceURL);
HelloWorldWebServiceImplService webService = new HelloWorldWebServiceImplService(WsURL);
Так что здесь вы можете динамически указывать URL веб-службы.