Implémentation des gestionnaires JAX-RPC pour accéder aux messages SDO

Les gestionnaires JAX-RPC sont appelés pendant le traitement des messages de demande et de réponse. Pour les messages échangés à l'aide du protocole SOAP, chaque gestionnaire JAX-RPC reçoit un objet MessageContext SOAP. Pour les autres protocoles, l'environnement d'exécution des services Web d'IBM transmet un objet MessageContext qui fournit une vue SDO (Service Data Objects) du message. SDO (Service Data Objects) est une norme ouverte permettant aux applications de traiter de manière uniforme les données des différentes sources de données, sous forme de graphes de données.

Si le gestionnaire JAX-RPC ne traite que les propriétés de contexte de message, il n'a pas besoin de connaître la sous-classe particulière de MessageContext qu'il reçoit, car les méthodes des propriétés de contexte sont définies par l'interface MessageContext elle-même. Si le gestionnaire doit traiter les informations contenues dans le message, il doit être codé pour pouvoir utiliser les sous-classes requises. Vos gestionnaires JAX-RPC doivent tester si l'interface MessageContext est une instance de la sous-classe requise.

Un gestionnaire JAX-RPC reçoit un objet MessageContext spécifique à SDO (une instance de la classe com.ibm.websphere.webservices.handler.sdo.SDOMessageContext) et non un objet MessageContext spécifique à SOAP dans les cas suivants :
  • Un client JAX-RPC ou un appel sortant du bus d'intégration de services appelle un service à l'aide de la liaison d'EJB.
  • Un client JAX-RPC est développé sur un WSDL non lié, puis réacheminé vers une destination du bus d'intégration de services.

La classe SDOMessageContext fournit des méthodes permettant d'extraire et de définir l'instance com.ibm.websphere.sdo.SDOMessage qui représente le message en cours de traitement. Le message SDO dispose d'une méthode pour accéder à l'objet DataGraph SDO qui conserve le contenu du message sous forme d'objets de données SDO.

Un gestionnaire JAX-RPC peut modifier le contenu du graphique des données SDO, mais il ne peut pas modifier le format ou le schéma du message.

L'exemple suivant présente un code permettant d'accéder au graphique des données SDO à partir de l'objet MessageContext d'une méthode handleRequest de gestionnaire JAX-RPC :

public boolean handleRequest(MessageContext messageContext) {

		// Convert the MessageContext into an SDOMessageContext
		if( messageContext instanceof SDOMessageContext) {
			SDOMessageContext smc = (SDOMessageContext)messageContext;

			// Retrieve the message
			SDOMessage message = smc.getSDOMessage();
		
			// Get the root object in the SDO DataGraph
			DataGraph graph = message.getDataGraph();
			DataObject content = graph.getRootObject();
		
			// Now do something with the message content.....
		}
		return true;
	}

Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rjw_jaxrpc_sdo
Nom du fichier : rjw_jaxrpc_sdo.html