3.2.4. Cambios de los servicios web

3.2.4.1. Cambios de los servicios web

JBoss EAP 6 incluye soporte para implementar puntos finales de servicio web JAX-WS. Este soporte lo brinda JBossWS. Para mayor información sobre los servicios web, consulte el capítulo titulado JAX-WS Web Services en la Development Guide para JBoss EAP 6 en https://access.redhat.com/site/documentation/JBoss_Enterprise_Application_Platform/.
JBossWS 4 incluye los siguientes cambios que pueden tener impacto en su migración.
Cambios del proyecto API JBossWS
SPI y los componentes comunes fueron refactorizados en JBossWS 4. La siguiente tabla lista los cambios de empaque y API que pueden afectar la migración de su aplicación.

Tabla 3.7. Propiedades del controlador de registro de tamaño

JAR antigua Paquete antiguo Nueva JAR Nuevo paquete
JBossWS SPI org.jboss.wsf.spi.annotation.* JBossWS API org.jboss.ws.api.annotation.*
JBossWS SPI org.jboss.wsf.spi.binding.* JBossWS API org.jboss.ws.api.binding.*
JBossWS SPI org.jboss.wsf.spi.management.recording.* JBossWS API org.jboss.ws.api.monitoring.*
JBossWS SPI org.jboss.wsf.spi.tools.* JBossWS API org.jboss.ws.api.tools.*
JBossWS SPI org.jboss.wsf.spi.tools.ant.* JBossWS API org.jboss.ws.tools.ant.*
JBossWS SPI org.jboss.wsf.spi.tools.cmd.* JBossWS API org.jboss.ws.tools.cmd.*
JBossWS SPI org.jboss.wsf.spi.util.ServiceLoader JBossWS API org.jboss.ws.api.util.ServiceLoader
JBossWS Common org.jboss.wsf.common.* JBossWS API org.jboss.ws.common.*
JBossWS Common org.jboss.wsf.common.handler.* JBossWS API org.jboss.ws.api.handler.*
JBossWS Common org.jboss.wsf.common.addressing.* JBossWS API org.jboss.ws.api.addressing.*
JBossWS Common org.jboss.wsf.common.DOMUtils JBossWS API org.jboss.ws.api.util.DOMUtils
JBossWS Native org.jboss.ws.annotation.EndpointConfig JBossWS API org.jboss.ws.api.annotation.EndpointConfig
Anotación @WebContext
En JBossWS 3.4.x, esta anotación se empacó como org.jboss.wsf.spi.annotation.WebContext en el proyecto JBossWS SPI. En JBossWS 4.0, esta anotación se movió a org.jboss.ws.api.annotation.WebContexten el proyecto JBossWS API. Si su aplicación incluye la dependencia obsoleta entonces tiene que reemplazar las importaciones y las dependencias en su código fuente de la aplicación y compilarlo frente a la nueva JAR JBossWS API.
También hay un cambio en un atributo que no es retroactivo. El atributo String[] virtualHosts se cambió a String virtualHost. En JBoss EAP 6 se puede especificar solo un host virtual por implementación. Si múltiples webservices usan la anotación @WebContext entonces el valor virtualHost debe ser idéntico para todos los puntos finales definidos en el archivador de implementación.
Configuración del punto final
JBossWS 4.0 proporciona integración de la pila de servicios web JBoss con la mayoría de los módulos del proyecto Apache CXF. La capa de integración permite el uso de APIs de servicios web estándares, incluyendo JAX-WS. También permite el uso de funcionalidades avanzadas de Apache CFX por encima del contenedor JBoss EAP 6 sin requirir una configuración compleja.
El subsistema webservice en la configuración de dominio de JBoss EAP 6 incluye configuraciones del punto final predefinidas. También puede definir sus propias configuraciones de punto final predefinidas. La anotación @org.jboss.ws.api.annotation.EndpointConfig se utiliza para hacer referencia a una configuración de punto final dada.
Para obtener mayor información sobre cómo configurar puntos finales de servicios web en el servidor JBoss, consulte el capítulo titulado JAX-WS Web Services en la Guía de desarrollo para JBoss EAP 6 en https://access.redhat.com/site/documentation/JBoss_Enterprise_Application_Platform/.
Descriptor de implementación jboss-webservices.xml
JBossWS 4.0 introduce un nuevo descriptor de implementación para configurar servicios web. El archivo jboss-webservices.xml proporciona información adicional para la implementación dada y reemplaza parcialmente el archivo obsoleto jboss.xml.
Para las implementaciones de servicios web EJB, la ubicación esperada del archivo descriptor jboss-webservices.xml es en el directorio META-INF/. Para los puntos finales del servicio web EJB y POJO agrupados en un archivo WAR, la ubicación esperada del archivo jboss-webservices.xml es en el directorio WEB-INF/.
El siguiente es un ejemplo de un archivo descriptor jboss-webservices.xml y una tabla describiendo los elementos.
<webservices>
    <context-root>foo<context-root>    
    <config-name>Standard WSSecurity Endpoint</config-name>
    <config-file>META-INF/custom.xml</config-file>
    <property>
        <name>prop.name</name>
        <value>prop.value</value>
    </property>
    <port-component>
        <ejb-name>TestService</ejb-name>
        <port-component-name>TestServicePort</port-component-name>
        <port-component-uri>/*</port-component-uri>
        <auth-method>BASIC</auth-method>
        <transport-guarantee>NONE</transport-guarantee>
        <secure-wsdl-access>true</secure-wsdl-access>
    </port-component>
    <webservice-description>
        <webservice-description-name>TestService</webservice-description-name>
        <wsdl-publish-location>file:///bar/foo.wsdl</wsdl-publish-location>
    </webservice-description>
</webservices>

Tabla 3.8. Descripción del elemento del archivo jboss-webservice.xml

Nombre del elemento Descripción
context-root
Utilizado para personalizar la raíz contexto de la implementación de los servicios web.
config-name
config-file
Utilizado para asociar la implementación de un punto final con la configuración del punto final dado. Las configuraciones del punto final se especifican en el archivo de configuración referenciado o en el subsistema webservices de la configuración del dominio.
propiedad
Utilizado para configurar parejas de valores de nombres de propiedades simples para configurar el comportamiento de la pila de los servicios web.
port-component
Utilizado para personalizar la URI de destino del punto final EJB o para configurar las propiedades relacionadas con la seguridad.
webservice-description
Utilizado para personalizar o sobreescribir la ubicación publicada WSDL del servicio web.