Was ist die genaue Art und Weise, Endorsed-Verzeichnis in jdk1.6 zu verwenden?

8

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)

ist

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)

%Vor%

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:

  1. Was ist der Unterschied zwischen JAVA_HOME und JDK_HOME auf der Dokumentseite? etwas Bedeutendes oder nur zwei Möglichkeiten, auf JAVA_HOME zu verweisen?
  2. Ist 'wsgen -version' ein gültiger Weg, um die verwendete jaxws-Version zu überprüfen, oder ruft dies immer die exe in der originalen jdk auf, aber es bedeutet nicht, dass die indossierten jars verwendet werden?
  3. Wer kennt sehr detaillierte Schritte um jaxws2.2 in einer jdk.16 zu installieren?

Ich habe diesen Beitrag gefunden, der einige Hinweise darauf enthält, was ich denke, denke ich

    
Persimmonium 18.05.2010, 17:15
quelle

3 Antworten

0

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

    
Daniel 01.12.2016, 11:11
quelle
11

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.

    
Saintali 14.07.2012 09:39
quelle
1

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.

    
Yishai 18.05.2010 17:52
quelle

Tags und Links