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 WAR habilitado para JAX-WS contiene:
  • 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
Un archivo WEB-INF/web.xml es similar al de este ejemplo:
<?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.

Avoid trouble Avoid trouble: Durante el despliegue de aplicaciones de servicios web, no se exploran los jar de programa de utilidad en busca de anotaciones. Por lo tanto, si los servicios web se empaquetan en archivos jar de programa de utilidad, no pueden ser detectados por el motor de servicios web. En tal caso, si la opción Iniciar componentes según sea necesario está seleccionada en los valores de configuración del servidor de aplicaciones, no se puede iniciar el componente de servicio web después de iniciar el servidor de aplicaciones ya que no se ha detectado ningún servicio web. Utilice la propiedad personalizada com.ibm.websphere.webservices.StartWebServicesComponent para evitar este problema.gotcha
Avoid trouble Avoid trouble: Es muy recomendable empaquetar la interfaz de punto final de servicio (SEI) y las clases de implementación de servicios web de terceros con la aplicación/módulo. Este empaquetado asegura que la SEI y las clases de implementación sean ambas visibles para el cargador de clases de la aplicación e impide la aparición de una excepción tal como EndpointInterfaceDescriptionImpl: no se puede encontrar la superclase que se ha especificado para esta clase.

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

Icon that indicates the type of topic Concept topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_jaxwsapp
File name: cwbs_jaxwsapp.html