Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Java-клиент + PHP-сервер, Вопросы взаимодействия 
:(
    Опции темы
Temdegon
Дата 16.7.2010, 04:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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?
PM MAIL   Вверх
Temdegon
Дата 18.7.2010, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.10.2008
Где: Minsk

Репутация: 7
Всего: 9



Все-таки мне удалось разобраться с SOAP и подружить NUSOAP PHP с Axis. Оказалось, все не так уж сложно.
PM MAIL   Вверх
griga
Дата 23.11.2011, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 15.11.2011

Репутация: нет
Всего: нет



скажите с чем может быть связана ошибка 
Код

SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize
. Вылазит когда сервер пхп(nusoap) посылает ответ (простой массив) клиенту на JAVA(axis).

Это сообщение отредактировал(а) griga - 23.11.2011, 13:58
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0415 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.