Adición de manejadores globales de servicios web

Los componentes que deben registrar manejadores de servicios web para todos los puntos finales de servicios web deben implementar la interfaz de manejador y registrar esa implementación en el registro de servicio.

Antes de empezar

El servicio de manejador global se proporciona mediante jaxws-2.2 , o jaxrs-1.1, o jaxrs-2.0, o jaxrs-2.0 client, de modo que debe especificar la característica siguiente o combinaciones de características en el archivo server.xml:
  • jaxws-2.2
  • jaxrs-1.1
  • jaxrs-2.0
  • jaxrs-2.0 client
  • jaxws-2.2 y jaxrs-1.1
  • jaxws-2.2 y jaxrs-2.0
  • jaxws-2.2 y jaxrs-2.0 client

Acerca de esta tarea

El SPI de manejador proporciona propiedades diferentes para especificar ENGINE_TYPE, FLOW_TYPE y el lado del cliente (IS_CLIENT_SIDE) o el lado del servidor (IS_SERVER_SIDE) donde se aplican los manejadores.

Debe implementar la interfaz de manejador y registrar la clase de implementación en el registro de servicio.

La documentación de la API Java para cada SPI de Liberty está disponible en un archivo comprimido independiente, en uno de los subdirectorios Javadoc del directorio ${wlp.install.dir}/dev.

Despliegue del paquete de manejador

Puede desplegar el paquete de manejador utilizando WebSphere Application Server Developer Tools for Eclipse.

Procedimiento

  1. Pulse Archivo > Nuevo > Otros y, a continuación, expanda OSGi.
  2. Pulse Proyecto de paquete OSGi y pulse Siguiente. Se abre la ventana Nuevo proyecto de paquete OSGi.
  3. Escriba MyHandler como nombre del proyecto. En la lista Tiempo de ejecución de destino, seleccione Liberty de WebSphere Application Server. Si no existe ningún tiempo de ejecución, pulse Nuevo tiempo de ejecución para crear un tiempo de ejecución de WebSphere Application Server Liberty.
  4. Desmarque el botón de selección Añadir paquete a la aplicación.
  5. Pulse Siguiente dos veces y vaya a la página Paquete OSGi.
  6. En la página Paquete OSGi, seleccione Generar un activador, una clase Java que controle el ciclo de vida del paquete. Deje el Nombre de activador como myhandler.Activator y pulse Finalizar.
  7. Pulse Ventana > Preferencias > Desarrollo de plug-ins > Plataforma de destino y seleccione Liberty de WebSphere Application Server con SPI.
    Nota: Asegúrese de que ha añadido el tiempo de ejecución de WebSphere Application Server Liberty en 3.
  8. Pulse Aplicar y Aceptar.
  9. Expanda MyHandler > BundleContent > META-INF y abra el archivo MANIFEST.MF utilizando el Editor de manifiestos de plug-in.
  10. Cree las clases MyHander y MyActivitor:
    ...
    import com.ibm.wsspi.webservices.handler.Handler;
    ...
    
    public class MyHandler implements Handler {
        ...
        public void handleFault(GlobalHandlerMessageContext arg0) {
            ...
        }
        public void handleMessage(GlobalHandlerMessageContext msgctxt) throws Exception {
    
            if (msgctxt.getFlowType().equalsIgnoreCase(HandlerConstants.FLOW_TYPE_OUT)) {
                }
            ...
         }
         ....
    }
    public class MyActivator implements BundleActivator {
        ...
        public void start(BundleContext context) throws Exception {
    
              final Hashtable<String, Object> handlerProps = new Hashtable<String, Object>();
               handlerProps.put(HandlerConstants.ENGINE_TYPE, HandlerConstants.ENGINE_TYPE_JAXWS);
               handlerProps.put(HandlerConstants.FLOW_TYPE, HandlerConstants.FLOW_TYPE_IN);
               handlerProps.put(HandlerConstants.IS_CLIENT_SIDE, true);
               handlerProps.put(HandlerConstants.IS_SERVER_SIDE, true);
               handlerProps.put(org.osgi.framework.Constants.SERVICE_RANKING, 3);
               MyHandler myHandler = new MyHandler();
               context.registerService(Handler.class, myHandler, handlerProps);
               ...
            }
            ...
       }
  11. Pulse Archivo > Nuevo > Otros y, a continuación, expanda OSGi.
  12. Pulse Proyecto de características de Liberty y, a continuación, pulse Siguiente. Se abre la ventana Proyecto de características de Liberty.
  13. Especifique MyHandlerFeature como nombre del proyecto.
  14. En la lista de tiempo de ejecución de destino, seleccione WebSphere Application Server Liberty y pulse Siguiente. Se abre la página Selección de paquetes OSGi.
  15. En la página Selección de paquetes OSGi, seleccione MyHandler 1.0.0 como Paquetes contenidos y pulse Finalizar.
  16. Modifique Manifest:MyHandler en el proyecto MyHandler. Pulse la pestaña MANIFEST.MF y añada com.ibm.wsspi.webservices.handler al elemento Import-package.
  17. Pulse con el botón derecho el proyecto MyHandlerFeature y pulse Instalar característica para instalar la característica en el tiempo de ejecución de Liberty.
  18. Edite el archivo server.xml para habilitar MyHandlerFeature:
    <featureManager> ......
    <feature>jsp-2.2</feature>
    <feature>jaxws-2.2</feature> // you can also use one of the following feature or feature combinations: jaxrs-1.1, jaxrs-2.0, jaxrsClient-2.0, 
    jaxws-2.2 and jaxrs-1.1, jaxws-2.2 y jaxrs-2.0, jaxws-2.2 and jaxrsClient-2.0
    <feature>usr:MyHandlerFeature</feature> ......
    </featureManager>

Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_web_services_global_handlers.html