El API Apache SOAP v2.2

Algunas extensiones del marco de trabajo Apache SOAP necesitan la habilidad de interact�ar con el SOAP envelope antes de enviarlo o despu�s de recibirlo. Para facilitar este tipo de interacci�n, Apache SOAP proporciona la habilidad de insertar extensiones de transporte conectables en tiempo de ejecuci�n. La ejemplarizaci�n real de estas extensiones de transporte en el marco de Apache SOAP son conocidas como Envelope Editors.

.�Usar Envelope Editors en el Servidor

Para permitir las extensiones de transporte en el servidor, necesitamos seelccionar un par�metro de inicializaci�n llamado EnvelopeEditorFactory en los ficheros de configuraci�n de los servlets RPCRouter y MessageRouter. El valor de este par�metro deber�a ser el nombre totalmente cualificado de una clase Java que implemente org.apache.soap.transport.EnvelopeEditorFactory.

.�Usar Envelope Editors en el Cliente

Para usar Envelope Editor en el lado del cliente necesitamos ejemplarizar nuestro Envelope Editor, y luego crear un ejemplar de org.apache.soap.transport.FilterTransport pasarle el objeto Envelope Editor, y un ejemplar de un objeto que represente cualquier transporte sobre el que nos estemos comunicando (por ejemplo org.apache.soap.transport.http.SOAPHTTPConnection). Luego necesitamos invocar a org.apache.soap.rpc.Call.setSOAPTransport(...) o a org.apache.soap.messaging.Message.setSOAPTransport(...), depediendo de si est�mos invocando un servicio basado en RPC o un servicio orientado a mensaje, respectivamente, pas�ndole un ejemplar de FilterTransport.

.�Crear un Envelope Editor

Para crear un Envelope Editor, primero debemos crear una Envelope Editor Factory implementando el interface org.apache.soap.transport.EnvelopeEditorFactory:

public interface EnvelopeEditorFactory
{
  public EnvelopeEditor create(Properties props) throws SOAPException;
}

El m�todo creado toma un objeto java.util.Properties que contiene propiedades que, en el caso de lo servlets HTTP, son pasados desde los par�metros de inicializaci�n del servlet.

Para crear un Envelope Editor, necesitamos implementar el interface org.apache.soap.transport.EnvelopeEditor:

public interface EnvelopeEditor
{
  public void editIncoming(Reader in, Writer out) throws SOAPException;
  public void editOutgoing(Reader in, Writer out) throws SOAPException;
}

Los dos m�todos son las rutinas que son llamadas cuando se reciben mensajes de entrada y cuando un mensaje de salida est� listo para ser enviado, respectivamente.

La clase org.apache.soap.transport.EnvelopeEditorAdapter contiene un Envelope Editor de ejemplo.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP