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

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

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

从URLStreamHandler看到方法实现,我发现它只是抛出exception

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

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

项目中的某些其他库可能已注册了一个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中,此exception在此EndpointAddress类中捕获,然后在不使用代理的情况下调用url.openConnection。 所以更新到java 7也应该解决这个问题。

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