Paquete de aplicaciones JAX-WS
Puede empaquetar una aplicación JAX-WS (Java™ API for XML Web Services) como un servicio web. Un servicio web JAX-WS está contenido en un archivo archivador web (WAR) o en un módulo WAR en un archivo EAR (Enterprise Archive).
- Un archivo WEB-INF/web.xml
- Clases anotadas que implementan los servicios web contenidos en el módulo de la aplicación.
- [Opcional] Documentos WSDL (Web Services Description Language) que describen los servicios web contenidos en el módulo de la aplicación
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" xmlns=”http://java.sun.com/xml/ns/j2ee”
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
</web-app>
El archivo web.xml puede contener elementos de servlet o de correlación de servlets. Cuando no se necesitan personalizaciones del archivo web.xml, el tiempo de ejecución de WebSphere Application Server las define de forma dinámica cuando se carga el módulo. Para obtener más información sobre la configuración del archivo web.xml, consulte la información sobre la personalización de patrones de URL web en el archivo web.xml para las aplicaciones JAX-WS.
Las clases anotadas deben contener como mínimo una clase de implementación de servicio web que incluya la anotación @WebService. La definición y la especificación de las anotaciones relacionadas con los servicios web las proporcionan las especificaciones JAX-WS y JSR-181. Las clases de implementación de servicios web pueden existir en WEB-INF/classes o en un archivo JAR (Java Archive) contenido en el directorio WEB-INF/lib del archivo WAR.
De manera opcional, puede incluir documentos WSDL en el empaquetado de la aplicación JAX-WS. Si se omite el documento WSDL de un determinado servicio web, el tiempo de ejecución de WebSphere Application Server crea la definición WSDL dinámicamente a partir de las anotaciones contenidas en las clases de implementación del servicio web.
A partir de WebSphere Application Server versión 7.0 y posterior, los módulos de aplicación Java EE 5 (los módulos de la aplicación web de la versión 2.5 o superior, o los módulos EJB de versión 3.0 o superior) se examinan para ver anotaciones para identificar los servicios y clientes JAX-WS. Sin embargo, los módulos de aplicaciones anteriores a Java EE 5 (módulos de aplicaciones web versión 2.4 o anteriores o módulos EJB versión 2.1 o anteriores) no se exploran para ver si contienen anotaciones JAX-WS, de manera predeterminada, por razones de rendimiento. En el paquete de características de la versión 6.1 para servicios Web, el comportamiento predeterminado es explorar los módulos de aplicaciones Web anteriores a Java EE 5 para identificar los servicios JAX-WS y explorar los módulos de aplicaciones web anteriores a Java EE 5 y los módulos EJB en busca de clientes de servicio durante la instalación de aplicaciones. Puesto que el comportamiento predeterminado de WebSphere Application Server Versión 7.0 y posteriores es no explorar módulos anteriores a Java EE 5 en busca de anotaciones durante la instalación de aplicaciones o el arranque de servidor, para conservar la compatibilidad con los releases anteriores del paquete de características, deberá configurar la propiedad UseWSFEP61ScanPolicy en META-INF/MANIFEST.MF de un archivo archivador web (WAR) o un módulo EJB o definir la propiedad personalizada de máquina virtual Java, com.ibm.websphere.webservices.UseWSFEP61ScanPolicy, en los servidores para solicitar la exploración durante la instalación de aplicaciones y el arranque de servidor. Para obtener más información sobre la exploración de anotaciones, consulte la información sobre las anotaciones de JAX-WS.


Si la SEI y las clases de implementación no se pueden empaquetar con la aplicación/módulo, es recomendable empaquetar los archivos jar donde residen estas clases en una biblioteca compartida aislada y asociar esta biblioteca compartida con la aplicación/módulo.
gotcha