Programación en castellano
-Tutoriales

El API Apache SOAP v2.2


Usar Attachments

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.)

 
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad
Mantenida por: Claudio y Dani.

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: jugar gratis | amor | navidad 2009 | registro de dominios | servidores dedicados
más internet: comprar | gratis | posicionamiento en buscadores | decoración libre | gifs animados