Giter Club home page Giter Club logo

soap's Introduction

Структура

  • Сервер.

    database содержит .txt файл с командами для создания базы данных.

    Класс HandbookService описывает поведение при CRUD операциях (Sql команды через prepared statements).

    Класс Database описывает подключение БД с помощью Tomcat. Нужно в Tomcat/conf/server.xml внести настройки БД, а также добавить SQL драйвер в Tomcat/libs.

    В models классы описывают структуры, которые используются в БД.

  • Клиент.

    Для работы с приложением нужна библиотека javafx, поэтому я ее закинула в папку lib.

    Controller выводит окно подключения к серверу (showConnectionDialog), а также выполняет инициализацию БД (вывод окна с таблицей) и т.д.

    EditingCell - редактирование отдельных ячеек (прямо в таблице).

    InsertDialog - окно добавления данных в БД.

    ProtocolPerformer - интерфейс для реализации подключения(в зависимости от типа).

    SoapProtocolPerformer - реализует вышеописанный интерфейс и реализует SOAP соединение (передает команды серверу и тд).

    В axis2 package есть классы CallbackHandler и Stub, которые сгенерированы из wsdl файла, который находится на сервере axis2. CallbackHandler используется в Stub. А в stub происходит общение клиента и сервера(отправление сообщений, получение данных и т.д).

Для каждой программы есть build.xml, который с помощью Ant выполняет некоторую функциональность (генерация wsdl файла, генерация классов из wsdl, генерация .aar сервиса и т.д).

Описание работы программы

Данные для БД были взяты отсюда.

Изначально пишется сервер, в котором есть необходимые классы (для хранения элементов БД,для описания CRUD операций и тд). Также создается build.xml, с помощью которого можно сгенерировать .aar веб-сервис.

Запуск сервера происходит через Apache Tomcat. Нужно .aar сервис переместить в папку Tomcat/webapps/axis2/WEB-INF/services, а потом запустить Tomcat/bin/startup.bat. Для всего этого нужно установить Axis2 war или exploded.

Для работы с клиентом нужно с помощью build.xml сгенерировать необходимые CallbackHandler и Stub классы. Достается wsdl файл с сервера и генерируется код.

Далее запускается клиент, в окно вводится адрес, к которому нужно подключиться, и в методе connect класса SoapProtocolPerformer проверяется правильность написанного адреса и создается клиент через класс HandbookServiceStub.

Далее уже через интерфейс клиента выполняем CRUD операции над БД.

Работа с интерфейсом клиента

В окне ввода порта по дефолту задан нужный, поэтому нужно просто нажать ОК.

При подключении клиента к серверу появится окно, в котором при правильном подключении должна быть заполненная данными таблица.

  • Добавление данных: ctrl + A или Table -> Add.

  • Удаление данных: нажать на необходимую строку и нажать Delete ИЛИ Table -> Remove ИЛИ ctrl + R. Для отображения изменений ctrl + S или Table -> Synchronize.

  • Редактирование данных.

    Первый способ. Можно дважды кликнуть на нужную ячейку, изменить ее и нажать Enter. Тогда будут внесены изменения ТОЛЬКО этой ячейки в БД.

    Второй способ. Можно дважды кликнуть на нужную ячейку, изменить ее и нажать F1. Изменение будет зафиксировано, но не будет занесено в БД. Так можно отредактировать остальные необходимые ячейки и дальше нажать ctrl + U ИЛИ Table -> Update.

    Для отображения изменений ctrl + S или Table -> Synchronize.

  • Для отмены изменения ячейки после двойного клика по ней нужно нажать Esc.

P.S. Не знаю почему так, но клиент бывает на каких-то действиях зависает, и для дальнейшей работы нужно перезапустить сервер tomcat.

Запуск

Изначально нужно добавить драйвер mysql в Tomcat/libs. Далее нужно в Tomcat/conf/server.xml внутри GlobalNamingResources добавить конфиг БД.

<Resource name="jdbc/j2eehandbook" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/j2eehandbook?useSSL=false" username= "username" password="password" maxIdle="20" minIdle="5" />

  • Для сервера:

    Нужно запустить build.xml и из папки build переместить .aar файл в папку Tomcat/webapps/axis2/WEB-INF/services. Для этого нужно установить Axis2 war(нужно будет запустить один раз сервер для деплоя) или exploded. Далее запустить tomcat сервер.

  • Для клиента:

    Для клиента нужно добавить в modules библиотеку javafx, которая находится в папке lib, а в параметры запуска в VM Options нужно добавить

    --module-path "lib\javafx-sdk-11.0.2\lib" --add-modules=javafx.controls,javafx.fxml

soap's People

Contributors

exhale97 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.