Pregunta

La implementación de JAX-WS incluido con JDK6 se puede utilizar para proporcionar un servidor de servicios web sin ninguna biblioteca adicional.JVM comenzará con un servidor WS en un puerto especificado.

http://java.sun.com/developer/technicalarticles/j2se/JAX_WS_2/

http://java.sun.com/developer/technicalarticles/j2se/JAX_WS_2_PT2/

La pregunta que tengo es ¿cómo difiere esto del metro del proyecto?Si el objetivo final es organizar servicios web dentro de Tomcat, ¿puedo seguir usando la funcionalidad inclinada y luego simplemente redirigir a este servidor WS BUNDLED o es mejor implementar el servlet de Metro?

¿Fue útil?

Solución

En la medida en que sé, JAX-WS es solo una plantilla que debe implementarse por el JDK6 o la implementación del Metro.

Metro Simplemente es la implementación estándar enviada con el servidor de aplicaciones de GlassFish. ver aquí .

Por lo tanto, no debería haber diferencias.

Otros consejos

bien, Lo primero que debe saber sobre Metro, es que es un proyecto de paraguas para varios proyectos relacionados con WS. JAX-WS, JAXB, WSIT, JAX-WS-AMOX, etc.

Cada uno de estos componentes tiene dos partes, API (especificaciones) y la parte de implementación llamada la implementación de referencia (RI). Las especificaciones se definen en 'javax.xml.ws', 'javax.xml.bind', etc. y el RI van en los paquetes 'com.sun.xxx'.

Ahora en algún lugar alrededor de JDK 6, ACTUALIZACIÓN 4, SUN / Oracle comenzó a agrupar estos API + RIS en el propio JDK, y siguió actualizando estos con actualizaciones al JDK.

A partir de la última actualización JDK 631, el JDK contiene las siguientes veras de JAXWS y JAXB API, y RI

JDK6 U31 - JAXB API @ 2.1 & RI @ 2.1.10, JAXWS API @ 2.1 y RI @ 2.1.6

Ahora, si va a la http://jaxb.java.net y http://jax-ws.java.net Páginas, y vea la última versión en 2.1.x, verá que Jaxb RI está en 2.1.13 y JAXWS RI es 2.1 .7, es decir, las implementaciones de RI de las 2.1 SPES que se agrupan con la última actualización de JDK 6 son un par de versiones detrás de las que se liberan en metro. Por lo tanto, para utilizar los últimos 2.1 frascos, simplemente copie los frascos API + RI a su Classpath, como se describe aquí http://jax-ws.java.net/2.1.7/docs/releasenotes.html#running_on_top_of_jdk_6 .

Para hacer que los asuntos sean más confusos, el proyecto de paraguas tiene sus propios números de versión, que son hoy, 1.5, 2.0, 2.0.1, 2.1, 2.1.1, 2.2

Metro 1.5 fue la última versión que incluyó el 2.1 SPES y las últimas RIS para dichas especificaciones, es decir, Metro 1.5 contiene JAXWS y JAXB APIs @ 2.1 y JAXWS RI @ 2.1.7 y JAXB RI @ 2.1.13.

Metro 2.0 en adelante, paquetes de Jaxb y Jaxws API v2.2 y la última RI a partir de los datos de liberación. p.ej. La última versión de metro 2.2 paquetes Jaxb RI 2.2.5 y JAXWS RI 2.2.6.

Pero hay una captura, JDK 6 Bundles V2.1 para JAXWS y JAXB (API + RI), y si simplemente usa Jaxws, Jaxb v2.2 tarros en su Classpath no funcionará. Tendrá que usar el mecanismo de tarro aprobado, como se describe aquí http:// jax- ws.java.net/2.2.3/docs/releasenotes.html#running_on_top_of_jdk_6 .

Para cualquier METRO RELEASE 2.0 y superior, deberá copiar los archivos JAX-WS-API.JAR y JAXB-API.JAR en $ Java_Home / Jre / lib / respaldados, o usar el -djava.endorsed propiedad del sistema .dirs.

Y un poco más divertido, metro no es un proyecto de paraguas que contiene el Jax-WS, los proyectos de Jaxb (entre otros), pero también hace un frasco de Uber de estos proyectos.

por lo que, por ejemplo, los webservices-api.jar de Metro contiene JAXWS-API.JAR, JAXB-API.JAR (RI) + API de otros proyectos de niños como WSIT, JAX-WS-MOICMS, etc.

y webservices-rt.jar contiene jaxws-rt.jar, jaxb-rt.jar, + rt frascos de otros proyectos de niños como WSIT, JAX-WS-AMOX, etc.

para resumir -

Si desea desarrollar su WS contra las especificaciones de JAXWS / JAXB V2.1, simplemente use el JDK 6 (cualquier actualización más allá de U04). Si desea estar absolutamente seguro de usar las últimas versiones API + RIS de 2.1 especificaciones, simplemente use los últimos frascos de versión 2.1.x de JAXWS y JAXB. Es decir, use JAX-WS 2.1.7 y JAXB 2.1.13, en su Classpath, [O puede usar los webservices-api.jar y Webservices-Rt.jar y WebServices-RT.jar, a medida que envuelven el JAXWS / JAXB / WSIT /. .]

Si desea desarrollar su WS contra las últimas especificaciones de JAXWS / JAXB V2.2, entonces tendrá que usar Jax-WS v2.2.6 y Jaxb Ver 2.2.5 Frascos [o alternativamente use los servicios de Webservices de Metro 2.2 -Api.jar y Webservices-Rt.jar mientras paquen el JAXWS / JAXB / WSIT ..] Pero tendrá que usar el mecanismo de frasco aprobado como se describe anteriormente, para anular el JDK incluido JAXWS / JAXB V2.1 Frascos.

Mi recomendación: si v2.1 está bien, con usted, use los frascos de Metro 1.5 (WebServices-API, WebServices-RT). Si necesita V2.2, use los frascos de METRO 2.2 (Webservices-API, WebServices-RT), y asegúrese de poner servicios webservices-api.jar en el dir.

Necesitará frascos de metro (servicios web- [API, RT] .jar) Si va a usar cosas como Fastinfosets, MTOM, etc., como los frascos agrupados JDK o por eso, solo el JAXWS-RI.JAR y Jaxb-Ri.jar no le dará esas características.

Espero que este correo bastante largo sea útil para limpiar algunas cosas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top