Приклади 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).

Коли виникають проблеми, генерується виняток і бути спійманим за допомогою зловити заяву.

Для отримання зазначеного в даному прикладі клієнт виклику, сервер посилає таку відповідь назад клієнту:

Тепер ваш сервер готовий, тому скомпілювати і запустити його у вашій рядку наступним чином:

Тепер, щоб перевірити працездатність, дати виклик до цього сервера в такий спосіб: