
Салом, хуш омадед ба қисми аввали 3 силсила мақолаҳои ман дар бораи таҳияи замимаҳои SOAP бо истифода аз Java. Ин силсила тавсифи муфассали протоколи SOAP нест, балки танҳо як дастури оғози зуд барои нишон додани он аст, ки чӣ тавр мо метавонем Java ва SOAP-ро якҷоя истифода барем. Дар қисми аввал, ман анатомияи асосии SOAP, насби Apache SOAP 2.2 ва масъалаҳои конфигуратсияро бо Jakarta Tomcat 3.2.1 меомӯзам ва як барномаи хеле оддии SOAP-ро таҳия, ҷобаҷо ва иҷро мекунам. Дар қисми 2-юми силсила, ман як хидмати мураккабтари Java-ро дар асоси SOAP таҳия мекунам ва дар қисми 3, ман ба шумо дар бораи дигар ҷанбаҳои мураккаби SOAP тасаввурот медиҳам. Пас, биёед оғоз кунем.
Анатомияи SOAP
Протоколи дастрасии оддӣ ё SOAP асосан барои таъмини механизми хеле содда ва сабук барои табодули иттилооти сохторӣ дар муҳити ғайримарказонидашуда ва тақсимшуда тарҳрезӣ шудааст. Он аслан як модели рамзгузории маълумот дар формати стандартишудаи XML мебошад, ки дар ҳолатҳои гуногун, аз қабили паёмнависӣ ва зангҳои расмиёти дурдаст (RPC) истифода мешавад. SOAP аз се қисмати муҳим иборат аст:
- Лифофа: Ин унсури сатҳи болоии XML ё унсури решавӣ дар паёми SOAP-и XML кодршуда мебошад. Дар лифофа маълумоти зеринро дар бар мегирад ё бояд ҳатман дар бар гирад, ҳамчун қабулкунандаи паём, мундариҷаи паём ва дастури коркарди паём.
- Қоидаҳои рамзгузорӣ: Қоидаҳои рамзгузорӣ тарзи мубодилаи мисолҳои навъи додаҳои аз ҷониби барнома муайяншударо муайян мекунанд.
- CPR: Даъвати расмиёти дурдаст ё намояндагии RPC конвенсияро барои муаррифии Зангҳои расмиёти дурдаст ва посухҳо ба онҳо муайян мекунад.
Барои фаҳмидани се қисми паёми SOAP, биёед як паёми SOAP-ро дида бароем:
POST /StockQuote HTTP/1.1 Хост: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8"Дарозии мундариҷа: nnnn SOAPAction:"Баъзе-URI" ДИС
Мисоли боло паёми маъмулии SOAP-ро дар ҳатмии дархости HTTP нишон медиҳад. Унсури лифофа ба фазои ном мувофиқ аст (SOAP-ENV) барои ҷудо кардани он аз дигар идентификаторҳои мушаххаси барнома. Ин элемент инчунин маълумотро дар бораи рамзгузории фазои номҳо дар бар мегирад. Унсури кӯдаки бевоситаи лифофа дар ин мисол Элементи бадан аст. Ин элемент БОЯД дар паёми SOAP мавҷуд бошад ва маълумотро дар бораи номи Процедураи дурдаст (GetLastTraderPrice), ки даъват карда мешавад, нигоҳ медорад ва инчунин параметрҳоеро, ки аз ҷониби Процедураи дурдаст талаб карда мешавад, рамзгузорӣ мекунад. Дар ин паёми мушаххас, Тартиби дурдаст номи ширкатеро (DIS) талаб мекунад, ки аз он нархи охирини савдо гирифта шавад. Интихобан, унсури Бадан маълумотро дар бораи ҳар хатое, ки дар давоми RPC рух додааст ва дар унсури Fault рамзгузорӣ шудааст, дар бар мегирад. Унсури хато дорои маълумоти хато/вазъ бо паёми SOAP мебошад ва агар мавҷуд бошад, метавонад танҳо як маротиба ҳамчун унсури кӯдаки унсури Бадан пайдо шавад.
Дар ҳолатҳои мураккаби паёмҳои SOAP, унсури лифофа метавонад унсури дигари кӯдак бо номи Сарлавҳа дошта бошад. Агар ин элемент дар лифофаи SOAP мавҷуд бошад, он бояд кӯдаки бевоситаи унсури лифофа бошад. Унсури Сарлавҳа одатан метавонад маълумотро дар бораи аутентификатсия, идоракунии транзаксия ва ғайра нигоҳ дорад. Аммо дар мисоли мушаххаси мо, мо ин иттилооти сарлавҳаро истифода намебарем. Ба ҳамин монанд, ҳуҷҷати вокуниши SOAP сохтори шабеҳ дорад.
HTTP/1.1 200 Хуб Content-Type: text/xml; charset="utf-8"Мундариҷа-Дарозии: nnnn 34.5
Элементи лифофа унсури Баданро дар бар мегирад, ки дар навбати худ маълумоти дархостшуда ё сатри хаторо дар бар мегирад, агар дар вақти занги хидматӣ ягон хатогӣ тавлид шавад.
Муқаррар кардани муҳити зист
Пас аз зеркашии тақсимоти бинарии версияи SOAP 2.2, онро дар ягон ҷузвдони системаи худ кушоед. Гарчанде ки SOAP метавонад бо ҳама контейнерҳои Servlet/JSP кор кунад, мо барои модели худ Jakarta tomcat 3.2.1 -ро интихоб мекунем. Пас аз он ки шумо дар системаи худ tomcat насб кардаед,
- Ба директорияи /lib-и насби собуни худ равед ва файли soap.jar-ро ба директорияи /lib-и насби tomcat нусхабардорӣ кунед.
- Файли xerces.jar-ро гиред ва онро дар директорияи /lib-и насби tomcat ҷойгир кунед. Акнун ин ҷо як нукта аст. Tomcat аллакай бо parser.jar ва jaxp.jar меояд. Ҳамин тавр, ихтилофи эҳтимолӣ бо xerces.jar нав насбшуда вуҷуд дорад. Барои пешгирӣ кардани ин:
- Файли tomcat.bat-ро таҳрир кунед ва ба қисмате равед, ки дар он роҳи синф муқаррар карда мешавад. Дар пеши онҳо синфи роҳи xerces.jar-ро гузоред, то xerces.jar аввал дар роҳи синф бор карда шавад.
- Файли soap.war-ро аз феҳристи lib-и тақсимоти бинарии SOAP ҷойгир кунед ва онро дар директорияи /webapps-и tomcat ҷойгир кунед. Вақте ки шумо Tomcat-ро бозоғоз мекунед, ин файли soap.war васеъ карда мешавад.
- Акнун tomcat-ро аз нав оғоз кунед.
Инчунин барои он ки шумо утилитаи сатри фармонро барои ҷойгиркунӣ ва идоракунии хадамот истифода баред ва инчунин муштарии SOAP-ро, ки мо таҳия хоҳем кард, истифода баред, тағирёбандаи муҳити CLASSPATH система бояд файлҳои зерини .jar -ро дар бар гирад:
- собун
- фаъолсозӣ.jar
- mail.jar
- xerces.jar







![7 роҳи зуд барои интиқоли маълумот ба телефони нав [Android ё iPhone] телефон ба телефон интиқол](https://www.jguru.com/wp-content/uploads/2026/01/word-image-116310-1-e1768996905264-100x70.jpeg)