私はプレイするのが初めてです!フレームワークと wsdl2java ツールの使用。劇を展開中!SOAP Web サービスと対話する必要があるアプリケーション。私は WSDL を持っており、jaxws を使用してそこからオブジェクトを作成しました。一連のJavaクラスと1つのインターフェースを作成しています。Web サービスを呼び出そうとするとすぐに、クラスローダがインターフェイスを見つけられないというエラーが表示されます。これは私のコードです:
MyWebserviceBeanService service = new MyWebserviceBeanService();
MyWebserviceRemote mwr = service.getMyWebserviceBeanPort();
LoginResponse response = mwr.loginUser("xxx", "xxx");
「MyWebserviceRemote」がインターフェースであることに注意してください。のコードはgetMyWebserviceBeanPort
自動的に生成されるため非常に一般的ですが、次のようになります。
@WebEndpoint(name = "MyWebserviceBeanPort")
public MyWebserviceRemote getMyWebserviceBeanPort() {
return super.getPort(new QName("http://xxxxxxxxxx/", "MyWebserviceBeanPort"), MyWebserviceRemote.class);
}
上記のメソッドなど、メソッドを呼び出そうとするとloginUser
、次のスタックトレースが表示されます。
play.exceptions.JavaExecutionException: interface xxxx.xxxx.xxxx.MyWebserviceRemote is not visible from class loader
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:237)
at Invocation.HTTP Request(Play!)
Caused by: java.lang.IllegalArgumentException: interface xxxx.xxxxx.xxxx.MyWebserviceRemote is not visible from class loader
at com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:736)
at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:408)
at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:384)
at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:366)
at javax.xml.ws.Service.getPort(Service.java:119)
at xxxx.xxxx.xxxx.MyWebserviceBeanService.getMyWebserviceBeanPort(MyWebserviceBeanService.java:72)
at controllers.MyController.index(MyController.java:26)
at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:557)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:508)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:484)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:479)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:161)
... 1 more
これを修正する方法も、デバッグする方法もまったくわかりません。私はどこを見ますか?どこから始めればよいですか?SoapUI を使用して Web サービスをテストしたところ、正常に動作しました。
ありがとう!