2012-09-25 29 views
23

Le doy a JAX-WS una gran visión general y noté algunas referencias a sun-jaxws.xml (junto con com.sun.xml.ws.transport.http.servlet.WSServletContextListener y com.sun.xml.ws.transport.http.servlet.WSServlet).sun-jaxws.xml - ¿Cuándo es necesario y cuándo no?

¿En qué situaciones se necesita esto? (Creo que los servidores JSR 109 ?!)

+0

¿Dónde exactamente lo encontraste esas referencias? – Puce

+0

@Puce: por ejemplo aquí: http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/, y en algunos otros lugares – JohnDoDo

+0

Relacionados: http: //stackoverflow.com/questions/16537821/jax-ws-web-service-on-tomcat-without-sun-jaxws-xml –

Respuesta

32

sun-jaxws.xml es un descriptor de implementación propio necesario cuando los servicios web se implementan como un archivo estándar WAR en un contenedor de servlets que no es Java EE5 utilizando la implementación de referencia de SUN.

Sun's RI usa WSServletContextListener como el detector de eventos de contexto de servlet y WSServlet como el servlet despachador; ambos deben ser declarados en web.xml. El archivo sun-jaxws.xml es necesario para definir los puntos finales del servicio web para el WSServlet y hacerle saber a qué punto final debe enviarse una solicitud de servicio.

De esta manera, los servicios web se puede ejecutar en cualquier contenedor de servlets permitido JAX-WS RI, a pesar de que no van a ser portátil.

Java EE 5 + servidores de aplicaciones compatibles tales como Glassfish, the reference implementation, cumplen con JSR 109 (Web services 1.2/1.3) y JSR 224 (JAX-WS 2.0/2.1/2.2) y no requieren descriptores no estándar sun-jaxws.xml de despliegue.

Por favor, vea aquí para obtener más información:

http://jax-ws.java.net/nonav/2.2.1/docs/UsersGuide.html#1.0_Introduction

http://www.ibm.com/developerworks/java/library/j-jws9/index.html

+1

Gracias por la respuesta. Sin embargo, una pregunta, ¿qué significa "contenedor de servlet no Java EE5"? Una cierta versión del servlet api o qué? – JohnDoDo

+1

No estoy seguro de que solo la versión servlet api marque la diferencia; aunque definitivamente es importante (por ejemplo, soporte de anotaciones). Mi comprensión de los "contenedores de servlets no J2EE" - en la medida de este contexto - es que en un entorno J2EE 5+ como JBoss AS 7, el soporte JAX-WS 2.0 se garantiza automáticamente, pero si necesita crear servicios web en otros entornos, como los contenedores de servlet heredados, aún puede hacer el trabajo y esta es una opción. Por supuesto, hoy en día, hay otras implementaciones buenas, incluso mejores disponibles (por ejemplo, Apache CFX) de las que puede elegir. – RGO

+0

@JohnDoDo - aquí hay una explicación sobre la diferencia entre el contenedor de servlets y el servidor de aplicaciones completo de Java EE: http://stackoverflow.com/questions/17181292/java-ee-containers-vs-web-containers/17184620#17184620 –

Cuestiones relacionadas