9
votes

Comment MTOM Work + code de code

J'essaie de créer un service Web très simple qui suit:

  1. Le client frappe le service Web demandant un fichier.
  2. La classe de service du service Web se demande une haquetable qui a la clé (requête de recherche) et la valeur comme valeur de base6444444444.
  3. Maintenant, je dois utiliser MTOM pour renvoyer la valeur de base6444444 enregistrée dans la hausse au client.

    Il est important de le décoder et de le convertir en PDF.

    Alors, voici mes questions:

    1. Je comprends que nous codons des fichiers à base64 pour la transmission via un service Web, mais où et comment le MTOM est-il entré dans l'image là-bas?

    2. Quelqu'un peut-il me fournir une méthode simple qui utilise MTOM et envoie les données. Avons-nous besoin de spécifier quelque chose dans le WSDL aussi? Ou un simple type de retour de chaîne suffirait-il? Pourquoi / pourquoi pas?

      merci

      J'ai vu ce code . Il utilise beaucoup d'annotations, j'ai juste besoin d'un simple code Java utilisant MTOM. Nouveau à J2EE ici :)

      mise à jour 1

      Explication suffisante décente ici , je dois maintenant le comprendre du niveau de mise en œuvre. Good Info ici , mais pour .NET

      mise à jour 2

      Quel devrait être le type de retour de la méthode "CreatEMTom (INT ID)" ??


0 commentaires

3 Réponses :


8
votes

Vous semblez mélanger la mise en œuvre et le protocole.

La spécification pour MTOM est ici . Cette page a des échantillons de messages.

Si vous utilisez un environnement JAX-WS, vous utilisez le plus assurément annotations pour l'activer. Si vous roulez des messages de savon à la main, vous écrivez le code Java que vous devez écrire pour le produire. Essentiellement, MTOM signifie que le contenu des données se déplace vers une pièce jointe, qui est une partie mime distincte du message et est référencée via un XOP: Inclure l'élément avec une href à la partie mime.

Le schéma doit dire Base64Binary comme type d'élément, mais des attributs supplémentaires donnent des astuces quant à l'interprétation des octets: xMime: contenttype et xmime: attenduContType. De mon expérience, la mise en œuvre de la référence JAX-B a des limites sur l'utilisation de ceux-ci. Vous ne pouvez pas, par exemple, l'obtenir pour convertir automatiquement le texte en arrière vers des octets. Dans un kit typique comme CXF ou Glassfish, vous mettez des données dans un DataHandler et le kit le transforme dans la pièce jointe.


0 commentaires

1
votes

Un bon exemple détaillé / discussion est fourni dans l'IBM Redbook: Développement des applications de services Web, voir pages 64-74

http://www.redbooks.ibm.com/redpapers/pdfs/ redp4884.pdf


0 commentaires

1
votes

Il y a un article utile ici qui décrit le MTOM et comment l'activer avec CXF. L'article inclut également le code source d'un exemple de travail.


0 commentaires