Приклади xml-rpc
Для демонстрації XML-RPC, ми збираємося створити сервер, який використовує Java для обробки повідомлень XML-RPC, і ми створимо клієнт Java для виклику процедур на цьому сервері.
Помістіть всі файли .jar у відповідному шляху і давайте створить один клієнт і один невеликий сервер XML-RPC за допомогою JAVA.
XML-RPC Client
Напишемо клієнт XML-RPC для виклику функції з ім'ям сума функції. Ця функція приймає два параметри і повертає їх суму.
Давайте подивимося, що сталося в наведеному вище прикладі клієнта.
Пакет Java org.apache.xmlrpc містить класи для XML-RPC Java клієнтів і сервера XML-RPC, наприклад, XmlRpcClient.
Пакет java.util необхідний для векторного класу.
Функція Server.Execute (.) Надсилає запит на сервер. Сума процедура (17,13) називається на сервері. як якщо б це була локальна процедура. Значення, що повертається виклику процедури завжди є об'єкт.
Тут «зразок» позначає обробник, який визначений в сервері.
Зверніть увагу, що всі параметри виклику процедури завжди збираються в векторі.
локальний - означає локальну машину
Ви можете вказати IP-номер замість локального хоста, наприклад, 194.80.215.219
Ви можете вказати доменне ім'я, як xyz.dyndns.org
Ви можете вказати номер порту разом з доменним ім'ям xyz.dyndns.org:8080. За замовчуванням використовується порт 80
Слід зазначити, що результат виклику віддаленої процедури завжди є об'єкт, і він повинен бути перетворений в відповідний тип.
Коли проблеми не виникають (ніякого зв'язку, і т.д.), генерується виняток. і він повинен бути пійманий за допомогою зловити заяву.
У зв'язку з вище виклику, клієнт посилає наступне повідомлення на сервер. Зверніть увагу. що це обробляється Server.Execute (.) всередині і не має нічого спільного з ним.
XML-RPC-сервер
Нижче наведено вихідний код XML-RPC - сервер. написаний на Java. Це робить використання вбудованих класів. доступних в org.apache.xmlrpc. *
Давайте подивимося, що ми зробили в наведеному вище прикладі сервера.
Пакет org.apache.xmlrpc містить клас WebServer для реалізації XML-RPC Server.
Процедура сума. яка називається дистанційно реалізуються як загальнодоступний метод в класі.
Примірник того ж класу сервера потім зв'язується з обробником, який доступний клієнтові.
Сервер инициализируется номером порту (тут: 80).
Коли виникають проблеми, генерується виняток і бути спійманим за допомогою зловити заяву.
Для отримання зазначеного в даному прикладі клієнт виклику, сервер посилає таку відповідь назад клієнту:
Тепер ваш сервер готовий, тому скомпілювати і запустити його у вашій рядку наступним чином:
Тепер, щоб перевірити працездатність, дати виклик до цього сервера в такий спосіб: