Frage

Dies ist eine Fortsetzung der Frage hier: JBoss - hat App unter gleichen jdk kompiliert werden müssen, wie JBOSS unter ausgeführt wird?

Es ist anders genug aber, dass es eine neue Frage erforderlich.

Ich versuche jdk6 zu verwenden JBOSS 5.1 zu laufen, und ich heruntergeladen die JDK6 Version von JBOSS 5.1. Dies funktioniert gut, und meine EAR-Anwendung setzt in Ordnung. Allerdings, wenn ich möchte eine Web-Service-Client mit Code wie folgt auszuführen:

public static void main(String[] args) throws Exception {
    System.out.println("creating the web service client...");
    TestClient client = new TestClient("http://localhost:8080/tc_test_project-tc_test_project/TestBean?wsdl");
    Test service = client.getTestPort();
    System.out.println("calling service.retrieveAll() using the service client");
    List<TestEntity> list = service.retrieveAll();
    System.out.println("the number of elements in list retrieved using the client is " + list.size());
}

ich die folgende Ausnahme erhalten:

javax.xml.ws.WebServiceException: java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
    at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(ClientImpl.java:396)
    at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:302)
    at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:170)
    at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:150)

Jetzt hier ist der wirklich interessante Teil . Wenn ich das JDK ändern, dass meine der Code oben unter von JDK6 zu JDK5 läuft, oben geht die Ausnahme entfernt! Es ist wirklich seltsam.

Die einzige Möglichkeit, die ich für den Code gefunden oben unter JDK6 laufen war die JBOSS_HOME / lib / endorsed Ordner zu übernehmen und kopieren Sie sie in JDK6_HOME / lib. Dies scheint, wie es sollte nicht notwendig sein, aber es ist.

Gibt es eine andere Art und Weise diese Arbeit anderen zu machen, als die Abhilfe verwenden ich gerade beschrieben?

War es hilfreich?

Lösung

Sieht aus wie etwa, wenn Sie in die Gegenwart JAX-WS als offizielles Feature von JDK 1.6 lief. Kopieren Sie nicht Dinge zu ‚lib‘, kopieren Sie sie in einem ‚Vermerk‘ Verzeichnis (eine in java.endorsed.dirs aufgeführt). Diese könnte hilfreich sein.

Wenn Sie eine up-to-date haben 1.6, können Sie diese auf die gleiche Weise zu umgehen, dass Apache CXF tut. Lesen Sie die Dokumentation für Informationen darüber, wie CXF zu verwenden, in einer 1,6-Umgebung.

Andere Tipps

Es gibt verschiedene Vorschläge und Erklärungen in der jeweiligen Bugreport und anderswo (zB hier und hier ). Ich weiß nicht, wie gut sie funktionieren.

Informationen zu diesem Problem finden Sie in JBoss offiziellen Installations finden und Erste Schritte: http://docs.jboss.org/jbossas/docs/Installation_And_Getting_Started_Guide /5/html/Installation_Alternatives.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top