2 Stimmen

Methode nicht implementiert bei Aufruf eines WebService auf Weblogic 10.3

Ich habe einen Web Service-Client entwickelt, um eine Verbindung mit einem auf Weblogic 10.3 bereitgestellten Webdienst herzustellen. Beim Versuch, ein Client-Objekt zu instanziieren, erhalte ich immer die gleiche Ausnahme

java.lang.UnsupportedOperationException: Methode nicht implementiert.
    at java.net.URLStreamHandler.openConnection(URLStreamHandler.java:80)
    at java.net.URL.openConnection(URL.java:992)

Beim Überprüfen der Methodenimplementierung von URLStreamHandler habe ich festgestellt, dass sie einfach die Ausnahme wirft

protected URLConnection openConnection(URL u, Proxy p) throws IOException {
throw new UnsupportedOperationException("Methode nicht implementiert.");
}

Ich vermute, dass WebLogic von Ihnen verlangt, eine Bibliothek mit einer Unterklassenimplementierung von UrlStreamHandler bereitzustellen, die eine openConnection-Implementierung bereitstellt, bin mir aber nicht sicher, welche genau es sein sollte.

0voto

niekname Punkte 2478

Eine andere Bibliothek in Ihrem Projekt hat wahrscheinlich eine URLStreamHandler-Implementierung registriert, die die openConnection-Methode nicht mit dem Proxy-Parameter implementiert.

Die Standard-URLStreamHandler-Klasse ist sun.net.www.protocol.http.Handler, die sich in rt.jar befindet.

In meinem Fall habe ich die jcifs-Bibliothek verwendet, die ihren eigenen http-Handler registriert hat, aber die openConnection(URL, Proxy)-Methode nicht implementiert hat.

Sie sollten also einen Handler mit einer Implementierung von openConnection(URL, Proxy) bereitstellen oder den Standard-Handler verwenden, wenn möglich.

Hinweis: In meinem Fall wurde die url.openConnection-Methode von com.sun.xml.internal.ws.api.EndpointAddress (rt.jar) aufgerufen. In Java 6 wirft dies UnsupportedOperationException. In Java 7 wird diese Ausnahme in dieser EndpointAddress-Klasse abgefangen und dann url.openConnection ohne Verwendung eines Proxys aufgerufen. Ein Update auf Java 7 sollte also auch dieses Problem beheben.

0voto

oyvind.s Punkte 232

Ich habe diese Ausnahme erhalten, als ich einen alten WL-Client verwendet habe, der openConnection(URL u, Proxy p) nicht überschrieben hat, und manchmal wurde der Weblogic-Handler zuerst geladen. Die Lösung bestand darin, auf eine neuere WL-Version zu aktualisieren, die diese Methode überschrieben hatte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X