Ich möchte meine Jaxws auf 2.2 upgraden (jdk1.6 wird mit jaxws 2.1 ausgeliefert). Mein jdk ist (ich habe kein öffentliches jre installiert):
%Vor%In jaxws 'eigenem Dokument erklären sie, wie es geht:
Eine Möglichkeit, dies zu beheben, ist das Kopieren von jaxws-api.jar und jaxb-api.jar in das von JRE empfohlene Verzeichnis, das $JAVA_HOME/lib/endorsed (or $JDK_HOME/jre/lib/endorsed)
Aber ich bin mir nicht sicher, ob das Auswirkungen auf meine Installation hat. Für den Anfang habe ich nur %JAVA_HOME%
definiert. Und der Ordner $JAVA_HOME/lib/endorsed
ist nicht vorhanden, also habe ich die beiden Gläser erstellt und kopiert. Aber wenn ich das tue (wsgen ist ein Werkzeug von jaxws)
Ich verstehe immer noch:
%Vor% Ich habe auch versucht, den Ordner JAVA_HOME\jre\lib\endorsed
zu erstellen (beachte, dass sie im doc JDK_HOME sagen, aber da ich nur JAVA_HOME habe, habe ich diesen Pfad benutzt). Immer noch gleich wsgen ausgegeben.
Meine Fragen sind:
Ich habe diesen Beitrag gefunden, der einige Hinweise darauf enthält, was ich denke, denke ich
Der im jre enthaltene wsimport und wsgen befinden sich im jre / bin-Verzeichnis als exe, und wenn Sie ihn immer noch von der Befehlszeile aus aufrufen, wird weiterhin die Jax-WS 2.1-Implementierung ausgeführt.
Um auf Jax-WS 2.2 zu aktualisieren, müssen Sie die relevante JAX-WS 2.2.X RI von der jaxws-Website herunterladen.
Sie müssen den Inhalt auf Ihren Computer extrahieren.
Sie müssen auch die jaxws-api.jar und jaxb-api.jar in das unterstützte Verzeichnis kopieren (gemäß Ihrer ursprünglichen Beschreibung)
JEDOCH, anstatt wsgen.exe oder wsimport.exe (wie für Ihr Projekt anwendbar) zu verwenden, müssen Sie nun das im jax-ws 2.2 Update / Download bereitgestellte verwenden.
Im jaxws-ri-Verzeichnis, das Sie aus Ihrem JAX-WS 2.2-Download extrahiert haben, sehen Sie ein bin-Verzeichnis und 4 Dateien (wsgen.bat, wsgen.sh, wsimort.bat, wsimport.sh) und diese sind diejenigen, die Sie stattdessen ausführen müssen.
Um sie auszuführen, müssen Sie die Umgebungsvariable JAXWS_HOME einrichten (Einzelheiten finden Sie in den Dateien wsgen / wsimort.bat / sh).
Damit sollten Sie jetzt JAX-WS 2.2 mit JDK 1.6 ausführen können
Sie sollten Ihre Systemeigenschaft java.endorsed.dirs
, z. indem Sie System.getProperty("java.endorsed.dirs")
aufrufen. Auf einer Windows-Maschine ist dies normalerweise etwas wie C:\Program Files\Java\jdk1.6.0_16\jre\lib\endorsed
. Legen Sie die JAR-Dateien fest, die Sie hier unterstützen möchten. Wenn dieses Verzeichnis nicht existiert, erstellen Sie es einfach.
Eine weitere Option besteht darin, die jars in ein Verzeichnis Ihrer Wahl zu stellen, aber die Systemeigenschaft zu überschreiben, indem Sie einen Befehlszeilenschalter -Djava.endorsed.dirs=<Your endorsed jars directory>
hinzufügen.
Es ist nicht an Ihre Umgebungsvariablen gebunden. % JAVA_HOME% ist nur eine Kurzform in der Dokumentation, die nicht weiß, wo Sie Java installiert haben oder welche Version von Java Sie installiert haben.
% JAVA_HOME% bezieht sich auf eine JRE (die reguläre Laufzeit, die ein Nicht-Entwickler haben würde). % JDK_HOME% bezieht sich auf das rood-Verzeichnis eines JDK, ein Java Development Kit, etwas, das ein Entwickler verwenden würde.
Darüber hinaus müssen Sie wissen, wann Sie wsgen ausführen, von wo es ausgeführt wird, und dass die entsprechende JVM mit einem indossierten Verzeichnis konfiguriert ist, das die jars enthält.