ПредишенСледващото

Това съдържание е част от поредицата: Съвет

Останете на линия за предстоящите статии в тази серия.

Възможност да изпращате и получавате съобщения в стандартен формат, който може да бъде признат от всички взаимодействащи системи е в основата на технологията Web-услуги. Обикновено, този формат е сапун. SOAP съобщения могат да се създават и изпращат на ръка, но много от необходимите мерки, като например установяване на връзка, или да изпратите съобщение, може да се извършва автоматично с помощта на SAAJ (SOAP с прикачени файлове API за Java) - API, което се появява в резултат на работата на програмния интерфейс за предаване на XML съобщения (Java API за XML Messaging - JAXM). Тази статия разглежда стъпките, за да създадете и изпратите синхронни SOAP съобщения.

Целият процес се състои от пет стъпки:

  1. създаване SOAP съединение;
  2. създаването на SOAP съобщенията;
  3. генериране на съобщение;
  4. изпращане на съобщение;
  5. получите отговор.

SAAJ се доставя в пакета за развитието на Java Web-услуги (Java Web Services Developer Pack 1.2, вижте ресурси.). Пакетът също така включва Tomcat уеб-сървър, така че можете да разгърне своя собствена уеб-услуги, както и примерни приложения.

Инсталиране и конфигуриране на Developer Pack на Java Web Services 1.2 не е трудно, ако ще да изпраща съобщения чрез Tomcat уеб-сървър. Ако, обаче, точно както това е направено в тази статия, която искате да изпращате съобщения чрез самостоятелно приложение, то ще изисква някои допълнителни стъпки.

Сега можете да изпращате съобщения от всяко място на вашата система с помощта на стандартното приложение.

Структурата на съобщение SOAP

Да започнем, като погледнете в структурата на самите съобщения. Като цяло, SOAP съобщение се състои от корпус, разделен на две основни части: заглавката и самото съобщение. Въпреки факта, че използването на тези части е оставено на преценката на конкретното приложение, съобщенията трябва да имат специфична XML-структура, подобна на тази, показана на Обява 1.

Списък 1. Пример на съобщение SOAP

В този пример заглавието е празна и всички полезната част се намира в тялото на съобщението. Това съобщение се използва, за да поиска цената на книгата.

Установяване на връзка и създаване на мнения

Първата стъпка е да се създаде модел на клас съединения и монтаж на връзката (виж Обявата 2).

Обява 2. Създаване на връзка

Заявлението може да изпрати SOAP съобщения директно чрез SOAPConnection клас. който сега е включена в пакета за SAAJ, или с помощта на доставчик на съобщения, което е част от JAXM пакет. SOAPConnection обект е създаден с помощта на фабриката.

Фабриката се използва и за създаване на съобщението (виж Обява 3).

Обява 3. Създаване на съобщение
Разлики между версиите

Ако използвате друга версия на SAAJ, като библиотека, която е част от ос 1.2, а след това може би трябва да се извика методът addBodyElement вместо addChildElement.

На първо място, използвайте MessageFactory обект, за да създадете свой собствен съобщение. В този момент, то вече включва секции плик и удар с глава. но те са празни. Обект SOAPPart съдържа плик. което, от своя страна, дава възможност текста на съобщението. Други променливи са обявени, съдържаща всички необходими връзки, по-специално, SOAPBody.

Освен това е необходимо да се запълни тялото съобщение данни (SOAPBody обект), както е показано в Обявата 4.

Обявата 4. Получаване на тялото на съобщението

тяло SOAP съобщение е обикновен XML-елемент, който може да се постави поделементи като getPrice. След това можете да добавите ISBN елемент и съответната му текст. Всичко е направено по същия начин, както в случая на всеки DOM елемент.

SAAJ също ви позволява да създадете директно SOAPPart обектно-съобщения от външен файл. Например, ако съдържанието на XML-съобщение, показано на Обява 1, се съдържа в prepped.msg файл. след това може да бъде да се прилагат вместо ръчно създаване на съобщение (виж Обявата 5).

Обява 5. Създаване на съобщение от външен файл

StreamSource клас обикновено се използва, когато XSL трансформации, но в този случай с него просто се отваря вход файл поток FileInputStream. В резултат на това ние се пригответе да изпратите съобщение.

изпращане на съобщение

Когато работите със синхронен SOAP съобщения, изпращане и получаване на отговор се извършва в една единствена стъпка (виж Обява 6).

Обявата 6. Изпращане на съобщение
глава SOAPAction

Някои уеб услуги могат да се върнат за грешка, което изисква наличието на SOAPAction хедър в съобщението, което се използва за идентифициране на услугата. Това може да стане чрез създаване на желаната стойност в MIMEHeaders на обекта следва:

MimeHeaders заглавията =
message.getMimeHeaders ();
headers.addHeader ( "SOAPAction",
"Urn: requiredSOAPAction");

повикване () изпълнение метод блокове програма до получаване на отговор в обекта форма SOAPMessage.

Обявата 7. четене получено отговор

На първо място, както винаги, когато се използва XSLT, трябва да създадете Transformer обект. В този случай, ние просто трябва да се покаже съдържанието на съобщенията, така че използването на стилове не се използва. Съгласно съдържанието на сапун разбира част на съобщението, не цялото съобщение, което може да включва приспособления. Преди обработката също така е възможно да се разделят на плика и тялото на съобщението. Съдържанието се показва в System.out (вж. Фигура 1), но по принцип резултат трансформация могат да бъдат изведени в наличната мощност. Самата преобразуването се извършва по конвенционален начин.

Фигура 1. Към искането и отговора на сапуна

следващи стъпки

В нашия прост пример, се показва съобщение в стандартния изход, но със същия успех, че е възможно да се получи информацията от документа за XML. Освен това, въпреки че в тази статия демонстрира синхронни изпращате и получавате съобщения, интерфейсът на JAXM, които могат да бъдат изтеглени отделно, позволява използването на доставчик на съобщения, което предвижда асинхронен доставка чрез ProviderConnection обект вместо SOAPConnection. Доставчикът поддържа съобщение, докато не бъде успешно доставено.

JAXM също поддържа профили, които да улеснят създаването на специализирани SOAP съобщения като SOAP-RP или ebXML.

Изтегляне ресурси

Свързани теми

Подкрепете проекта - споделете линка, благодаря!