El API Apache SOAP v2.2

Incluso aunque SOAP es un protocolo basado en XML, no siempre es conveniente forzar que todos los datos que se pasan como parte de un mensaje SOAP est�n codificados de una forma que pueda ser embebida dentro de un documento XML. Algunas veces ser�a mejor s�lo permitir que datos, como im�genes JPEG, ficheros WAV, etc., sean pasados junto con el mensaje SOAP en vez de dentro de �l. Para corregir este problema, se cre� la especificaci�n SOAP Messages with Attachments. Esta especificaci�n permite embeber un mensaje SOAP dentro de un documento MIME, de una manera en la que no altere la reglas de procesamiento del mensaje. La especificaci�n tambi�n describe c�mo referirse a los attachments desde dentro del cuerpo de un mensaje SOAP. Apache SOAP contiene una implementaci�n de esta especificaci�n.

.�Usar Attachments en el Cliente

Si estamos interactuando con un servicio basado en RPC, podr�amos no tener que hacer nada especial para transmitir un attachment. Existen serializadores/deserializadores predefinidos para interact�ar con objetos javax.activation.DataSource y javax.activation.DataHandler. Si nuestros objetos pueden pasarse a trav�s de uno de estos mecanismos, entonces el c�digo RPC manejar� la creaci�n y/o eleminaci�n de attachments por nosotros.

Si estamos usando un servicio orientado a mensaje, o necesitamos un control fino sobre los attachements, podemos usar m�todos de las clases org.apache.soap.messaging.Message, org.apache.soap.rpc.Call, o org.apache.soap.rpc.Response. Los m�todos addBodyPart(...) nos permitir�n a�adir un objeto javax.mail.internet.MimeBodyPart a nuestros mensajes, mientras que los m�todos findBodyPart(...) y getBodyPart(...) nos permtir�n recuperarlos mediante el Content-URI y la localizaci�n dentro del mensajes, respectivamente.

.�Usar Attachments en el Servidor

Al igual que en el caso del cliente, si estamos implementando un servicio basado en RPC podr�amos aprovecharnos de los serializadores/deserializadores internos para los objetos DataSource y DataHandler.

Si est�mos implemendo un servicio orientado a mensaje, o necesitamos un control fino sobre los attachments, podemos usar los m�todos de la clase org.apache.soap.rpc.SOAPContext para a�adir o recuperar MimeBodyParts.

.�Referenciar Attachments desde dentro de un Mensaje SOAP

Para hacer que los attachments sean realmente �tiles, necesitamos poder referirnos a ellos desde dentro del contenido de un cuerpo de mensaje SOAP. Para referirnos a un attachment desde dentro de un mensaje, simplemente a�adimos un elemento como este:

<elemName href="cid:cid-uri">

donde elemName es el nombre de alg�n elemento dentro del mensaje, y cid-uri es el nombre de URL codificada del Content-ID del attachment al que no est�mos refiriendo, o alternativamente, una URI absoluta o relativa que se refiere al Content-Location del attachment. (El Content-ID se selecciona como parte del javax.mail.internet.MimeBodyPart.)

COMPARTE ESTE ARTÍCULO

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