Xpoint
   [напомнить пароль]

Пример использования XPFE/J2EE и SOAP для построения распределенных приложений: История

Внимание! Данный интерфейс находится в стадии глубокой переделки. Наберитесь терпения.

Последнее изменение

12 лет назад ENP[досье] изменил текст:
Текст:
Для построения распределенных и переносимых приложений очень часто бывает удобно использовать технологию [[http://www.w3.org/2002/ws/ web-сервисов]] и протокол [[http://www.w3.org/TR/soap/ SOAP]]. Рассмотрим пример такого приложения, серверная часть которого построена на платформе [[http://java.sun.com/j2ee/index.jsp J2EE]], а клиентская часть -- на платформе [[http://www.mozilla.org/xpfe/ XPFE]].¶

Для того, чтобы скомпилировать и запустить тестовое распределенное приложение, выполните следующую последовательность действий:¶

* Установите [[http://java.sun.com/ J2SE Development Kit (JDK)]] (приложение будет работать как с [[http://java.sun.com/j2se/1.4.2/download.html JDK 1.4]], так и с [[http://java.sun.com/j2se/1.5.0/download.jsp JDK 1.5]]) и создайте переменную окружения JAVA_HOME, указывающую на каталог, в который был установлен JDK¶
* Установите сервлет-контейнер (например, [[http://jakarta.apache.org/tomcat/ Tomcat]] или [[http://jetty.mortbay.org/ Jetty]]). Минимальный дистрибутив Jetty, достаточный для запуска тестового приложения, можно взять [[!/jetty.zip здесь]], его достаточно распаковать в любой каталог и создать переменную окружения JETTY_HOME, указывающую на этот каталог¶
* Распакуйте в любой каталог содержимое [[!/wsapp.zip архива с исходным кодом тестового приложения]]¶
* Перейдите в созданный каталог и выполните ./build.sh deploy (для UNIX) или build.bat deploy (для Windows)¶
* Перейдите в каталог Jetty и запустите его, выполнив ./start.sh (для UNIX) или start.bat (для Windows)¶
* Установите и запустите [[http://www.mozilla.org/products/firefox/ Firefox]] (версии не ниже, чем 1.0)¶
* Наберите в адресной строке http://localhost:8080/wsapp¶
* Следуя появившимся инструкциям, установите приложение, затем в адресной строке наберите about:config и создайте строковое свойство wsclient.services_url со значением http://localhost:8080/wsapp/services/¶
* После перезапуска Firefox в меню Tools (Инструменты) выберите Test Web Service Application¶

Исходный код приложения (без необходимых для сборки библиотек) можно загрузить [[!/wsapp.zip отсюда]]¶

Теперь немного о самом приложении.¶

Серверная часть является стандартным ~J2EE web-приложением, упакованным в war-архив. Она использует [[http://ws.apache.org/axis/ Axis]] для экспортирования web-сервиса ~PeopleService и [[http://springframework.org/ Spring]] для реализации внутренней логики. Для интеграции Spring и Axis используется [[http://opensource.atlassian.com/projects/spring/browse/SPR-371 Apache Axis dependency injection]]. В качестве СУБД используется встраиваемая [[http://www.hsqldb.org/ HSQLDB]]. Для подключения к БД указывается относительный путь db/mydatabase, поэтому каталог db должен находиться в текущем каталоге JVM, внутри которой исполняется сервлет-контейнер и web-приложение. Для сборки используется [[http://ant.apache.org/ Ant]]. Нет никаких препятствий к тому, чтобы вместо Jetty использовать Tomcat, для этого нужно только переписать цель deploy или выполнить ее вручную.¶

Axis автоматически генерирует wsdl-описание web-сервиса ~PeopleService, доступное по ссылке


Клиентская часть является расширением Firefox. Для приложений, использующих платформу XPFE, доступен класс [[
http://localhost:8080/wsapp/services/PeopleService?wsdl. Для приложений, использующих платформу XPFE, доступен класс ~WebServiceProxyFactory, позволяющий автоматически создать прокси для web-сервиса, однакоdeveloper.mozilla.org/en/docs/Accessing_Web_Services_in_Mozilla_Using_WSDL_Proxying WebServiceProxyFactory]], позволяющий автоматически создать прокси для web-сервиса по его wsdl-описанию (такое описание Axis создает автоматически - http://localhost:8080/wsapp/services/PeopleService?wsdl). Однако этот класс заставляет писать код, который по громоздкости немногим уступает прямому использованию Mozilla SOAP API. Поэтому клиентская часть использует собственную реализацию прокси, позволяющую сосредоточиться на предметной области и писать более компактный код.

И серверная, и клиентская часть являются настолько простыми, насколько это возможно, но при этом они используют основные стандарные средства платформ ~J2EE и XPFE и могут служить основой для построения значительно более сложных приложений.¶

История предыдущих изменений

изменения дата автор
текст 2005-08-22 09:16:50 (12 лет назад) ENP[досье]
текст, метки 2005-08-18 09:17:53 (12 лет назад) Андрей Новиков[досье]
текст 2005-08-18 08:16:08 (12 лет назад) ENP[досье]
текст 2005-08-18 07:57:35 (12 лет назад) ENP[досье]
текст, метки 2005-08-17 09:29:39 (12 лет назад) Андрей Новиков[досье]
текст, заголовок 2005-08-17 08:52:12 (12 лет назад) ENP[досье]
RSS
Powered by POEM™ Engine Copyright © 2002-2005