生成されたコード (例: "HelloWorldWebServiceImplService" など) で、META-INF の下にある WSDL url または wsdl ファイルへの参照を持つ上部の静的ブロックを調べます。
/*
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;
}
*/
これをコメントしたら、デフォルトのコンストラクターもコメントアウトする必要があります。言うまでもなく、静的な WSDL_LOCATION = null; を初期化します。(to null) したがって、以下に示すように 2 つのコンストラクターはありません。
public final static URL WSDL_LOCATION = null;
public HelloWorldWebServiceImplService(URL wsdlLocation) {
super(wsdlLocation, SERVICE);
}
public HelloWorldWebServiceImplService(URL wsdlLocation, QName serviceName) {
super(wsdlLocation, serviceName);
}
Webservice の呼び出し:このオブジェクトをインスタンス化するクライアント呼び出しで、示されているように Web サービスの 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);
したがって、ここで Web サービスの URL を動的に指定できます。