2010-05-18 14 views
8

Quiero actualizar mis jaxws a 2.2 (jdk1.6 viene incluido con jaxws 2.1). Mi JDK es (yo no instalar JRE público):cuál es la forma exacta de usar el directorio Endorsed en jdk1.6

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 jaxws' own doc que explican cómo hacerlo:

Una forma de solucionar este problema es copiar jaxws-api.jar y jaxb-api. jar en el directorio endosado JRE, que es $JAVA_HOME/lib/endorsed (or $JDK_HOME/jre/lib/endorsed)

Pero no estoy seguro de que esto tenga algún efecto en mi instalación. Para empezar, solo he definido %JAVA_HOME%. Y la carpeta $JAVA_HOME/lib/endorsed es inexistente, así que creé y copié los dos frascos. Pero si lo hago (wsgen es una herramienta de jaxws)

wsgen -version 

todavía consigo:

JAX-WS RI 2.1.6 in JDK 6 

También probé la creación de la carpeta JAVA_HOME\jre\lib\endorsed (notar que en el documento se dice JDK_HOME, pero ya que sólo tengo JAVA_HOME que utilicé esta ruta). Todavía la misma salida de wsgen.

Mis preguntas son:

  1. ¿Cuál es la diferencia entre JAVA_HOME y JDK_HOME en la página doc? algo significativo o solo dos formas de referirse a JAVA_HOME?
  2. ¿Es 'wsgen -version' una forma válida de verificar la versión de jaxws que se usa o esto siempre llama al exe en el jdk original, pero no significa que se usarán los jars respaldados?
  3. Cualquiera sabe pasos muy detallados para instalar jaxws2.2 en un jdk.16?

He encontrado this post que tiene algunas pistas acerca de lo que estoy viendo creo

Respuesta

0

El wsimport y wsgen incluidos en el jre se encuentran en el directorio jre/bin como exe y si aún lo llamas desde la línea de comandos, seguirá ejecutando la implementación de Jax-WS 2.1.

Para actualizar a Jax-WS 2.2, debe descargar el JAI-WS 2.2.X RI correspondiente del sitio web jaxws.

Necesita extraer los contenidos en su computadora.

También es necesario copiar el jaxws-api.jar y jaxb-api.jar en el directorio endosado (como por su descripción original)

Sin embargo, en lugar de utilizar wsgen.exe o wsimport.exe (como se aplicable a su proyecto), ahora necesita usar el que se proporciona en la actualización/descarga de jax-ws 2.2.

En el directorio jaxws-ri que ha extraído de su descarga JAX-WS 2.2, verá un directorio bin y 4 archivos (wsgen.bat, wsgen.sh, wsimport.bat, wsimport.sh) y estos son los que necesita ejecutar en su lugar.

Para ejecutarlos, debe configurar la variable de entorno JAXWS_HOME (consulte los archivos wsgen/wsimport.bat/sh para obtener más información).

Que ahora deben permitirá ejecutar JAX-WS 2.2 con JDK 1.6

+0

gracias! como se puede adivinar, no necesito 6 años después de la pregunta :) pero quizás ayude a alguien – Persimmonium

1

No está ligado a las variables de entorno. % JAVA_HOME% es solo una abreviatura en la documentación que no sabe dónde instaló Java o qué versión de Java instaló.

% JAVA_HOME% se refiere a un JRE (el tiempo de ejecución normal que un no desarrollador tendría). % JDK_HOME% hace referencia al directorio rood de un JDK, un Java Development Kit, algo que un desarrollador usaría.

Más que eso, debe saber cuándo ejecuta wsgen desde donde se está ejecutando, y que la JVM correspondiente está configurada con un directorio endosado que contiene los archivos jar.

+0

no importa donde wsgen se está ejecutando, ya que tengo JAVA_HOME% \ bin en el camino. Entonces el wsgen.exe siempre será el que está allí. Pero esperaba que cargara los frascos en el directorio endosado o algo – Persimmonium

+1

La pregunta era acerca de cómo respaldar? –

11

Debe verificar la propiedad de su sistema java.endorsed.dirs, p. llamando al System.getProperty("java.endorsed.dirs"). En una máquina con Windows, esto es generalmente algo así como C:\Program Files\Java\jdk1.6.0_16\jre\lib\endorsed. Coloque los archivos jar que desea endosar aquí. Si ese directorio no existe, solo créelo.

Otra opción es poner las jarras en un directorio de su preferencia, pero anular la propiedad del sistema agregando un interruptor de línea de comando -Djava.endorsed.dirs=<Your endorsed jars directory>.

Cuestiones relacionadas