Cómo trabajar con el contexto de mensaje

Puede trabajar con las propiedades de mensaje para afectar el modo en que se media un mensaje.

Antes de empezar

Antes de iniciar esta tarea, debe consultar cómo se transporta la información en el contexto de mediación en Información de contexto de mediación

Acerca de esta tarea

La interfaz SIMessageContext tiene una superinterfaz MessageContext. Los métodos de MessageContext le permiten gestionar un conjunto de propiedades de mensajes que permiten a los manejadores de una cadena de manejadores compartir el estado relacionado con el proceso. Lo más importante, puede obtener el valor de una propiedad específica de MessageContext utilizando el método getProperty y puede establecer el nombre y el valor de una propiedad asociada a MessageContext utilizando el método setProperty. Asimismo, puede ver los nombres de las propiedades de este MessageContext y suprimir una propiedad (esto es, una pareja de nombre y valor) de MessageContext.

Durante la ejecución de una mediación, a todas las propiedades definidas por el usuario que se han establecido durante la configuración de la mediación actual (consulte Configuración de las propiedades de contexto de mediación) se les aplica el conjunto de propiedades MediationContext.

Procedimiento

  1. Localice el punto del manejador de mediación en el que desea insertar el código de mediación funcional, en el método handle (MessageContext context). Dado que trabaja con los métodos MessageContext que le proporcionan acceso a las propiedades de mensaje, no tiene que convertir la interfaz a SIMessageContext a menos que también esté interesado en los métodos proporcionados por SIMessageContext.
  2. Obtenga el SIMessage del objeto MessageContext. Por ejemplo, SIMessage message = ((SIMessageContext)context).getSIMessage();
  3. Recupere o establezca las propiedades utilizando los métodos MessageContext. Por ejemplo, si se ha definido una propiedad durante la configuración con el nombre streetName, el tipo String y el valor "Main Street", el código para recuperar e imprimir el nombre de la calle podría tener un aspecto similar a este:

Ejemplo

public boolean handle(MessageContext context) throws MessageContextException {
	
			........			
		{
								/* Recuperar la propiedad de nombre de la calle */
								String myStreetName;
								myStreetName = (String) getProperty(streetName);
				
								/* Visualizar el valor de la propiedad */
								System.out.println(myStreetName);
				
		}
}

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=tjy1503
File name: tjy1503.html