我是新玩的!框架并使用 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 服务,它工作正常。
Thanks!
这是由于播放框架中的 jar 文件冲突造成的(总共 3 个 jar,名称中带有“jax”)。我删除了它们,现在一切都很好。描述性错误消息万岁:-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)