2010-04-12 17 views
7

Staram się zrobić bardzo prostą usługę internetową, która wykonuje następujące operacje:Jak działa MTOM + przykładowy kod

  1. klient natrafi usługę internetową wzywającą pliku.
  2. Klasa usług serwisów WWW wysyła zapytanie do tablicy, która ma klucz (zapytanie wyszukiwania) i wartość jako wartość base64 (plik pdf).
  3. Teraz potrzebuję użyć polecenia MTOM, aby zwrócić zakodowaną wartość base64encoded w hashtable do klienta.

Klient musi go zdekodować i przekonwertować na format pdf.

Tak, oto moje pytania:

  1. Rozumiem możemy kodować pliki do base64 do transmisji za pośrednictwem serwisu WWW, ale gdzie i jak MTOM wchodzić tam na zdjęciu?

  2. Czy ktoś może mi podać prostą metodę, która używa MTOM i odsyła dane. Czy musimy również podać coś w WSDL? lub wystarczy prosty typ zwracany przez String? Dlaczego? Dlaczego nie?

Dzięki

Widziałem to code. Korzysta z wielu adnotacji, potrzebuję tylko prostego kodu Java za pomocą MTOM. Nowy na J2EE TUTAJ :)

UPDATE 1

wystarczająco Godna wyjaśnienie here, teraz muszę zrozumieć go z poziomu realizacji. Dobry informacji here, ale dla .NET

UPDATE 2

Jaki powinien być zwracany typ metody "createMTOM (int id)" ??

Odpowiedz

7

Wygląda na to, że mieszasz implementację i protokół.

Specyfikacja dla MTOM to here. This strona zawiera przykładowe wiadomości.

Jeśli używasz środowiska JAX-WS, najpewniej użyjesz Annotations, aby go włączyć. Jeśli publikujesz wiadomości mydlane ręcznie, musisz napisać kod Java, który musisz napisać, aby go utworzyć. Zasadniczo MTOM oznacza, że ​​zawartość danych przenosi się do załącznika, który jest oddzielną częścią MIME komunikatu i jest przywoływany przez element xop: Include z href do części MIME.

Schemat ma typ base64Binary jako typ elementu, ale dodatkowe atrybuty zawierają wskazówki dotyczące interpretacji bajtów: xmime: contentType i xmime: expectedContentType. Z mojego doświadczenia wynika, że ​​implementacja referencyjna JAX-B ma pewne ograniczenia w ich wykorzystaniu. Nie można na przykład zmusić go do automatycznej konwersji tekstu w bajtach. W typowym zestawie, takim jak CXF lub Glassfish, umieszczasz dane w DataHandler, a zestaw zamienia je w załącznik.

0

Jest przydatny artykuł, który opisuje MTOM here i jak włączyć go CXF. Artykuł zawiera również kod źródłowy dla przykładu roboczego.

Powiązane problemy