Instalación de JAX-WS más reciente en JDK 6

Seguí las instrucciones aquí para instalar correctamente la última versión de JAX-WS (2.2.6) sobre mi JDK v1.6.0_31 (es decir, copiar jaxws-api.jar y jaxb-api.jar de la versión JAX-WS en mi ${JAVA_HOME} /lib/directorio respaldado). Desde dentro de Eclipse, puedo ejecutar la tarea ant wsimport correctamente y el código generado está dando un sello de versión en los comentarios de:

/**
* This class was generated by the JAX-WS RI.
* JAX-WS RI 2.2.6b21 
* Generated source version: 2.2
* 
*/

El problema que tengo es que el código de cliente generado muestra errores que me hacen creer que el compilador todavía está usando JAX-WS versión 2.1:

The constructor Service(URL, QName, WebServiceFeature[]) is undefined

y

The attribute required is undefined for the annotation type XmlElementRef

Intenté establecer explícitamente el argumento -Djava.endorsed.dir al iniciar Eclipse y también intenté establecer este argumento en Eclipse->Preferences->Java->InstalledJREs, pero ninguno de estos ayudó. Mi classpath de la tarea ant wsimport está definida para ver los archivos JAX-WS 2.2.6. También intenté configurar la ruta de compilación de mi proyecto para extraer los frascos 2.2.6. Nada parece funcionar. ¿Me estoy perdiendo de algo?

preguntado el 03 de mayo de 12 a las 16:05

¿Está seguro de que el binario java con el que ejecuta wsimport pertenece al JAVA_HOME que ha modificado? -

4 Respuestas

No estoy seguro de por qué no lo está recogiendo desde el principio, respaldó lib (aparte de que tal vez el directorio respaldado que puso en sus libs es para un JRE/JDK diferente que está usando eclipse), pero con respecto a lo último que intentó ... agregar los frascos directamente a la ruta de compilación.... esto funcionará si ordena las entradas de la ruta de compilación de modo que sus archivos JAX-WS estén por encima de la entrada de JDK.

contestado el 03 de mayo de 12 a las 17:05

Había producido un código que necesita JAX-WS 2.1. La versión 2.0 no tiene la clase WebServiceFeature y, como resultado, tampoco es un constructor en el Servicio con dicho tipo de argumento.

Como ves, en Java SE 6 no existe tal constructor: javax.xml.ws.Service SE 6, pero por ejemplo en Java EE 6 sí existe: javax.xml.ws.Service EE 6

enter image description here

Respondido 05 ago 14, 23:08

Si es posible, una solución podría reemplazar jdk1.6 con un jdk superior (ya sea 1.7 o 1.8).

Respondido el 22 de Septiembre de 16 a las 14:09

Puede usar el siguiente comando para generar los stubs wsdl2java -p -client -frontend jaxws21

respondido 04 mar '15, 17:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.