我开发了一个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实现,但不确定它应该是什么。
答案 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版本,并将该方法覆盖。