2010-04-12 15 views
7

que estoy tratando de hacer un servicio web muy simple que hace lo siguiente:¿Cómo funciona la masa máxima de despegue + ejemplo de código

  1. El cliente golpea el servicio web que solicita un archivo.
  2. clase de servicio del servicio web consulta una tabla hash que tiene la llave (criterios de búsqueda) y el valor que el valor base64encoded de un archivo (por ejemplo un pdf)
  3. Ahora, necesito usar masa máxima de despegue para devolver el valor base64encoded almacenado en la tabla hash para el cliente.

Depende del cliente decodificarlo y convertirlo a pdf.

lo tanto, aquí están mis preguntas:

  1. entiendo que codificar los archivos de base 64 para su transmisión a través del servicio web, pero ¿dónde y cómo vienen masa máxima de despegue en la imagen allí?

  2. Puede alguien proporcionar un método simple que utiliza masa máxima de despegue y envía los datos de nuevo. ¿Necesitamos especificar algo en el WSDL también? o un simple tipo de retorno de cadena sería suficiente? ¿Por qué por qué no?

Gracias

que he visto este code. Utiliza muchas anotaciones, solo necesito un código simple de Java usando MTOM. Nuevo en J2EE aquí :)

ACTUALIZA 1

suficiente explicación decente here, ahora tengo que entenderlo desde el nivel de implantación. Buena información here, pero para .Net

ACTUALIZACIÓN 2

¿Cuál debe ser el tipo de retorno del método "createMTOM (int id)" ??

Respuesta

7

usted parece estar mezclando aplicación y protocolo.

La especificación para MTOM es here. This página tiene mensajes de ejemplo.

Si está utilizando un entorno de JAX-WS, que con toda seguridad utiliza Annotations para encenderlo. Si está enrollando mensajes de jabón a mano, escriba el código Java que necesite para producirlo. Esencialmente, MTOM significa que el contenido del movimiento de datos a un archivo adjunto, que es una parte separada MIME del mensaje, y se hace referencia a través de un xop: elemento Incluir con un href a la parte MIME.

El esquema tiene que decir base64Binary como el tipo de elemento, pero los atributos adicionales dan pistas sobre la interpretación de los bytes: xmime: contentType y xmime: expectedContentType. En mi experiencia, la implementación de referencia JAX-B tiene algunas limitaciones en el uso de estos. No puede, por ejemplo, hacer que convierta automáticamente el texto de un lado a otro en bytes. En un kit típico como CXF o Glassfish, colocas datos en un DataHandler y el kit lo convierte en el archivo adjunto.

0

Hay un artículo útil here que describe masa máxima de despegue y cómo habilitarlo con CXF. El artículo también incluye el código fuente para un ejemplo de trabajo.

Cuestiones relacionadas