![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Temdegon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: 7 Всего: 9 |
Есть веб-приложение на PHP, что-то типа POS-терминала, только очень специфического. Если какие-то проблемы с сервером или с сетью, естественно он недоступен, а это очень критично. В результате возникла необходимость заменить его дектоп-клиентом на Java, с возможостью работать автономно. Клиент будет разворачиваться через вебстарт. При первом запуске он создает локальную базу, типа Derby или HQSQL в home-каталоге пользовате, выгружает туда все необходимые для работы данные - клиентов, баллансы, меню, авторизационные данные и создает ярлык на рабочем столе. Все транзакции фиксируются в локальной БД и параллельно отправляются на сервер. В фоне работает поток, запрашивающий изменения данных с сервера. Если сервер недоступен - все накапливается локально, и потом отправится на сервер, как только он вернется.
На сервере есть только PHP и взаимодействие возможно только через HTTP. На сервере ни какого ООП, только PHP+БД. Необходимо срочно определиться со способом взаимодействия между клиентом и сервером. Можно конечно сделать это непосредственно через HTTP - написать какой-нить service.php, а данные передавать в виде XML или еще как-нить, но очень уж неохота с этим заморачиваться и изобретать велосипед с квадратными колесами. Хочется какое-то готовое, проверенное решение, чтоб я со стороны java просто дергал бы функции сервета, как с EJB, и не заморачивался, в какой формат преобразуются данные и как это будет взаимодействовать с сервером. Для начала решил попробовать SOAP. В PHP есть встроенные классы для soap-сервера и клиента. В случае PHP-сервер + PHP-клиент все работает отлично. Начал разбираться с Java-клиентом - начались трудности. NetBeans 6.8 без проблем увидел мой вебсервис и его методы, но в проект он добавляться не захотел. NetBeans6.9 при попытке добавить вебсервис начал ругаться, что wsdl-файл RPC\Encoded и необходим плагин JAX-RPC. Найти этот плагин я так и не смог. Попробовал разобраться с axis. Показалось, что очень много букв и нифига не понятно, то ли это, что мне нужно. Потом наткнулся на http://java.sun.com/webservices/downloads/previous/index.jsp, повозился пару часов, тулза wscompile сгенерился мне классы для работы с моим сервисом. На простых типах данных все работает отлично - методы дергаются, данные приходят, обычные индексные массивы тоже работают. Как только из PHP пытаюсь передать ассоциативный массив - клиент ругается, типа написано array, а приходит map. Помучал гугл, на тему мэпинга php-шного массива на wsdl, но так и не нашел ответа. В тонкостях ручного написания wsdl я пока слаб. wsdl генерил каким-то готовым классом. Может есть какой-то другой способ взаимодействия PHP и Java? Или все-таки запастись терпением, и продолжать мучать SOAP? |
|||
|
||||
| Temdegon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: 7 Всего: 9 |
Все-таки мне удалось разобраться с SOAP и подружить NUSOAP PHP с Axis. Оказалось, все не так уж сложно.
|
|||
|
||||
| griga |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 15.11.2011 Репутация: нет Всего: нет |
скажите с чем может быть связана ошибка
Это сообщение отредактировал(а) griga - 23.11.2011, 13:58 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |