Weblogic 10.3 で jax ws クライアントを使用すると問題が発生しました。Web サービス スタブを生成し、単純な Java プロジェクトで Web サービスとの接続をテストします。すべて正常に動作します。しかし、このプロジェクトをjarファイルにパックし、他のjarを含み、weblogicで実行されているメインプロジェクトに追加すると、次のようになります。
java.lang.NoSuchMethodError: org.home.client.AddressWS.getAddressByRequestAsync(ILjava/lang/String;)Ljavax/xml/ws/Response;
この例外は、Web サービス スタブのメソッドを呼び出そうとしたときにスローされました。
public class MyServiceImpl implements MyService {
private AddressWS service;
private static final String ENDPOINT = "http://endpoint.address.ws.company.org/";
private static final String SERVICE_NAME = "AddressWSImplService";
@Override
public void setSOAPServiceURL(String serviceURL) {
URL url = createURL(serviceURL);
QName qName = new QName(ENDPOINT, SERVICE_NAME);
AddressWSImplService addressWSImplService= new AddressWSImplService(url, qName);
service = addressWSImplService.getAddressWSImplPort();
}
@Override
public String getAddressById(int id, String param) throws TimeoutException {
// NoSuchMethodError was thrown here
final Response<GetAddressById> response = service
.getAddressByIdAsync(id, param);
return (String) getValue(new Future<String>() {...});}
どんなポインタも役に立ちます。