8 votes

Quelle est la manière exacte d'utiliser le répertoire Endorsed dans jdk1.6 ?

Je souhaite mettre à jour mon jaxws vers la version 2.2 (jdk1.6 est fourni avec jaxws 2.1). Mon jdk est (je n'ai pas installé jre public) :

java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode)

En Le document de Jaxws ils expliquent comment procéder :

Une façon de résoudre ce problème est de copier jaxws-api.jar et jaxb-api.jar dans le répertoire JRE endorsé, qui est le suivant $JAVA_HOME/lib/endorsed (or $JDK_HOME/jre/lib/endorsed)

Mais je ne suis pas sûr que cela ait un effet sur mon installation. Pour commencer, je n'ai défini que %JAVA_HOME% . Et dossier $JAVA_HOME/lib/endorsed est inexistant, j'ai donc créé et copié les deux pots. Mais si je fais (wsgen est un outil de jaxws)

wsgen -version

Je reçois toujours :

JAX-WS RI 2.1.6 in JDK 6

J'ai également essayé de créer un dossier JAVA_HOME\jre\lib\endorsed (remarquez que dans la documentation, il est question de JDK_HOME, mais comme je n'ai que JAVA_HOME, j'ai utilisé ce chemin). Toujours la même sortie wsgen.

Mes questions sont les suivantes :

  1. Quelle est la différence entre JAVA_HOME et JDK_HOME dans la page de documentation ? Quelque chose d'important ou simplement deux façons de se référer à JAVA_HOME ?
  2. Est-ce que 'wsgen -version' est un moyen valide de vérifier la version de jaxws qui est utilisée ou cela appelle toujours l'exe dans le jdk original, mais cela ne signifie pas que les jars endossés seront utilisés ?
  3. Quelqu'un sait étapes très détaillées pour installer jaxws2.2 dans un jdk.16 ?

J'ai trouvé ce poste qui donne quelques indications sur ce que je vois, je pense

11voto

Saintali Points 1639

Vous devriez vérifier les propriétés de votre système java.endorsed.dirs par exemple en appelant System.getProperty("java.endorsed.dirs") . Sur une machine Windows, il s'agit généralement de quelque chose comme C:\Program Files\Java\jdk1.6.0_16\jre\lib\endorsed . Placez ici les fichiers jar que vous souhaitez approuver. Si ce répertoire n'existe pas, créez-le.

Une autre option consiste à placer les bocaux dans un répertoire de votre choix, mais à ignorer la propriété du système en ajoutant un commutateur de ligne de commande -Djava.endorsed.dirs=<Your endorsed jars directory> .

1voto

Yishai Points 42417

Il n'est pas lié à vos variables d'environnement. %JAVA_HOME% est juste une abréviation dans la documentation qui ne sait pas où vous avez installé Java ni quelle version de Java vous avez installée.

%JAVA_HOME% fait référence à un JRE (le moteur d'exécution habituel d'un non-développeur). %JDK_HOME% fait référence au répertoire principal d'un JDK, un kit de développement Java, qu'un développeur utiliserait.

De plus, vous devez savoir, lorsque vous exécutez wsgen, où il est exécuté, et que la JVM correspondante est configurée avec un répertoire endorsé qui contient les jars.

1voto

Daniel Points 36

Le wsimport et le wsgen inclus dans le jre sont situés dans le répertoire jre/bin en tant qu'exe et si vous les appelez toujours à partir de la ligne de commande, ils exécuteront toujours l'implémentation Jax-WS 2.1.

Pour mettre à jour Jax-WS 2.2, vous devez télécharger le document JAX-WS 2.2.X RI à partir du site web jaxws.

Vous devez extraire le contenu sur votre ordinateur.

Vous devez également copier les fichiers jaxws-api.jar et jaxb-api.jar dans le répertoire endossé (comme indiqué dans votre description originale).

CEPENDANT, au lieu d'utiliser wsgen.exe ou wsimport.exe (selon votre projet), vous devez maintenant utiliser celui fourni dans la mise à jour/le téléchargement de jax-ws 2.2.

Dans le répertoire jaxws-ri que vous avez extrait de votre téléchargement JAX-WS 2.2, vous verrez un répertoire bin et 4 fichiers (wsgen.bat, wsgen.sh, wsimport.bat, wsimport.sh) et ce sont ceux que vous devez exécuter à la place.

Pour les exécuter, vous devez définir la variable d'environnement JAXWS_HOME (voir les fichiers wsgen/wsimport.bat/sh pour plus de détails).

Cela devrait vous permettre d'exécuter JAX-WS 2.2 avec le JDK 1.6.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X