Especificación y adquisición de las propiedades de direccionamiento de mensajes mediante el uso de las SPI de direccionamiento de servicios web propiedad de IBM

Con las interfaces de programación de sistemas (SPI) de Web Services Addressing (WS-Addressing), puede añadir propiedades de direccionamiento de mensajes (MAP) de WS-Addressing a las cabeceras SOAP de un mensaje cliente de salida, mediante las propiedades del contexto de la solicitud BindingProvider de JAX-WS, o el objeto Stub o Call de JAX-RPC. Cuando un punto final de destino recibe el mensaje, la SPI permite al punto final adquirir las MAP a través de propiedades en el contexto del mensaje.

Acerca de esta tarea

No hay SPI equivalentes en el estándar JAX-WS. Si desea establecer las propiedades de direccionamiento de mensajes en un cliente que utilice referencias de punto final de JAX-WS, debe convertir las referencias de punto final en clases de propiedad de IBM, antes de utilizarlas con estas SPI.

Realice esta tarea si es un desarrollador de servicios web que utiliza el soporte de WS-Addressing, o un programador de sistemas que utiliza las SPI de WS-Addressing propiedad de IBM, para especificar propiedades de direccionamiento de mensajes como, por ejemplo, referencias de punto final de error o de respuesta, en mensajes de servicios web.

Las propiedades que puede establecer o recuperar se describen detalladamente, junto con las instancias de propiedades de tipo Java™, en SPI de Web Services Addressing propiedad de IBM. La mayoría de propiedades son del tipo com.ibm.websphere.wsaddressing.EndpointReference, por ejemplo, referencias de punto final de destino, respuesta o error. La propiedad de relación es un objeto java.util.Set que contiene instancias de la clase com.ibm.wsspi.wsaddressing.Relationship. Utilice las relaciones cuando desee especificar una asociación entre mensajes; por ejemplo, en un mensaje de respuesta podría desear especificar el ID del mensaje al que está contestando. La propiedad de la acción es un objeto AttributedURI que identifica un método u operación específico dentro del punto final de destino.
Atención: Las propiedades de acción y referencia del punto final de destino son necesarias para que el mensaje sea compatible con WS-Addressing.

Procedimiento

  1. En el cliente, obtenga la referencia de punto final del servicio y asóciela con el contexto de solicitud del objeto BindingProvider, o el objeto Stub o Call, como se describe en Creación de una aplicación de servicio web JAX-RPC que utiliza el direccionamiento de servicios web.
  2. Cree instancias de las propiedades necesarias. Por ejemplo, si desea especificar una referencia de punto final para el servicio de destino con objeto de enviar respuestas, cree una instancia de la clase com.ibm.websphere.wsaddressing.EndpointReference, para utilizar como la propiedad WSADDRESSING_REPLYTO_EPR.
  3. Establezca las propiedades necesarias asociándolas con el contexto de solicitud del objeto BindingProvider o el objeto Stub o Call. Si utiliza un objeto Stub o Call, utilice el método setProperty(String nombre_propiedad, valor objeto). Tenga en cuenta que a diferencia de la referencia de punto final necesaria para el primer paso, estas referencias de punto final no tienen que convertirse en otro tipo, puesto que se han pasado a la cabecera del mensaje SOAP, en lugar de al cuerpo. En el ejemplo siguiente se establece una referencia de punto final de destino y una referencia de punto final de respuesta en un contexto de solicitud del objeto BindingProvider:
    import javax.xml.ws.BindingProvider;
    ...
     javax.xml.ws.Service jaxwsServiceObject=...;
     Printer myPrinterProxy = jaxwsServiceObject.getPort(portName, Printer.class);
     
     javax.xml.ws.BindingProvider myBindingProvider = (javax.xml.ws.BindingProvider)myPrinterProxy;
    
     // Recuperar el contexto de solicitud para el objeto BindingProvider
     Map myMap = myBindingProvider.getRequestContext();
    
     // Asociar la referencia de punto final para el servicio web. Esta propiedad es necesaria para que el mensaje
     // sea compatible con WS-Addressing.
      myMap.put(WSADDRESSING_DESTINATION_EPR, destinationEpr);
    
     // Asociar la referencia de punto final que representa la respuesta al contexto de solicitud
     myMap.put(WSADDRESSING_REPLYTO_EPR, replyToEpr);
    Cuando se produce una invocación en el objeto BindingProvider, Stub o Call, el producto añade las MAP adecuadas a la cabecera de mensajes.
  4. En el servidor, recupere las MAP del mensaje de entrada mediante el objeto javax.xml.ws.WebServiceContext o javax.xml.rpc.handler.MessageContext que está actualmente en la hebra. Cuando WebSphere Application Server recibe el mensaje, coloca la información de MAP en el contexto del mensaje de la hebra, así esta información estará disponible para el servicio. Puede recuperar el contexto del mensaje utilizando, por ejemplo, el contexto de la sesión del enterprise bean del punto final. Si desea más información sobre contextos de mensaje, consulte el estándar JSR-109. En el ejemplo siguiente se recupera la referencia de punto final de respuesta utilizando el contexto de servicio web:
    import javax.xml.ws.handler.MessageContext;
    import javax.xml.ws.WebServiceContext;
    ...
    
      // Obtener el contexto de mensaje del contexto WebService
      private WebServiceContext wsContext;
      MessageContext context = wsContext.getMessageContext();
    
      // Recupere la referencia de punto final de respuesta
      replyToEpr = context.getProperty(WSADDRESSING_INBOUND_REPLYTO_EPR);

Icon that indicates the type of topic Task topic



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