Wie funktioniert MTOM Arbeit + Beispielcode
Ich versuche ein sehr einfaches web-service, der Folgendes macht:
- Der Kunde trifft die web-service-Anforderung einer Datei.
- Die web-service-service-Klasse Abfragen eine hashtable, die hat den Schlüssel (der Suchanfrage) und den Wert als base64encoded-Wert einer Datei (z.B. ein pdf)
- Nun,ich MTOM-die Rückkehr der base64encoded gespeicherten Wert in der hashtable an den client.
Es ist bis zu dem client zu entschlüsseln und konvertieren Sie Sie in pdf.
So, hier sind meine Fragen:
-
Ich verstehen wir Dateien Kodieren in base64-für die übertragung via web-service, aber wo und wie macht MTOM kommen in dem Bild?
-
Kann jemand mir eine einfache Methode, die verwendet MTOM und sendet die Daten zurück. Müssen wir angeben, so etwas in der WSDL zu? oder einen einfachen String zurück geben würde genügen? Warum/warum nicht?
Dank
Habe ich diesen code. Es verwendet eine Menge von Anmerkungen, ich brauche nur eine einfache java-code unter Verwendung von MTOM. Neue J2EE-HIER 🙂
UPDATE 1
Genug anständige Erklärung hier, jetzt muss ich es verstehen von der Ebene der Durchführung.
Gute info hier, aber für .Net
UPDATE 2
Was sollte der Rückgabetyp der Methode "createMTOM(int id)"??
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheinen Sie zu sein, die Vermischung der Durchführung und Protokoll.
Die Spezifikation für die MTOM ist hier. Diese Seite hat Probe-Nachrichten.
Wenn Sie mit einem JAX-WS-Umgebung, die Sie ganz gewiss verwenden
Annotations
um es einzuschalten. Wenn Sie Rollen von soap-Nachrichten, mit der hand, Sie schreiben, was den Java-code, den Sie schreiben müssen, um es zu produzieren. Im wesentlichen MTOM bedeutet, dass der Inhalt der Daten zu bewegen, um eine Anlage, die eine eigene MIME-Teil der Nachricht verwiesen wird, die durch eine xop:Include-element mit einem href auf das MIME-Teil.Dem schema zu sagen hat, base64Binary als element-Typ, aber zusätzliche Attribute geben Hinweise auf die interpretation der bytes: xmime:contentType und xmime:expectedContentType. In meiner Erfahrung, der JAX-B Referenzimplementierung hat einige Einschränkungen für die Verwendung dieser. Sie können nicht, zum Beispiel, erhalten Sie automatisch konvertieren Sie text hin und her und bytes. In einem typischen kit wie CXF oder Glassfish Sie setzen Daten in einen DataHandler und das kit verwandelt es in die Anlage.
Ein gutes ausführliches Beispiel /Diskussion wird im IBM-Redbook: die Entwicklung von Web-Services-Anwendungen, siehe Seite 64-74
http://www.redbooks.ibm.com/redpapers/pdfs/redp4884.pdf
Gibt es einen nützlichen Artikel hier, der beschreibt, MTOM und aktivieren es mit CXF. Der Artikel enthält auch den Quellcode für ein Beispiel.