在Weblogic 10.3上调用WebService时未实现的方法

时间:2013-09-25 15:36:03

标签: java web-services weblogic-10.x

我开发了一个Web服务客户端来连接部署在Weblogic 10.3上的Web服务。尝试实例化客户端对象时,始终会获得相同的异常

java.lang.UnsupportedOperationException: Method not implemented.
    at java.net.URLStreamHandler.openConnection(URLStreamHandler.java:80)
    at java.net.URL.openConnection(URL.java:992)

从URLStreamHandler查看方法实现,我发现它只是抛出异常

protected URLConnection openConnection(URL u, Proxy p) throws IOException {
throw new UnsupportedOperationException("Method not implemented.");
}

我认为WebLogic需要您传递一个带有子类UrlStreamHandler的库,它提供了一个openConnection实现,但不确定它应该是什么。

2 个答案:

答案 0 :(得分:0)

项目中的其他一些库可能已经注册了一个URLStreamHandler实现,该实现没有使用proxy参数实现openConnection方法。

默认的URLStreamHandler类是位于rt.jar的sun.net.www.protocol.http.Handler。

在我的情况下,我使用了jcifs库,它注册了自己的http Handler,但没有实现openConnection(URL,Proxy)方法。

因此,您应该为Handler提供openConnection(URL,Proxy)的实现,或者如果可能,您应该使用默认的Handler。

注意:在我的例子中,url.openConnection方法是从com.sun.xml.internal.ws.api.EndpointAddress(rt.jar)调用的。在java 6中,这会抛出UnsupportedOperationException。在java 7中,此异常在此EndpointAddress类中捕获,然后在不使用代理的情况下调用url.openConnection。所以更新到java 7也应该解决这个问题。

答案 1 :(得分:0)

当使用未覆盖openConnection(URL u,Proxy p)的旧WL客户端时,我遇到此异常,并且有时首先加载weblogic处理程序。解决方案是升级到更新的WL版本,并将该方法覆盖。