GWT-взаимодействие с внешним автономным приложением - PullRequest
0 голосов
/ 01 июня 2011

Я работаю над отдельным приложением Java, которое представляет собой систему командования и управления для ассортимента оборудования.Программное обеспечение C & C в основном запускается из командной строки и контролирует системное оборудование, которое разбросано повсюду.Это не требует GUI для удовлетворения бизнес-требований.Я написал небольшой графический интерфейс пользователя, чтобы видеть общее состояние системы, но, опять же, это не обязательно.

В дальнейшем нам бы хотелось иметь административный веб-интерфейс с состоянием системы.и что-то, что даст пользователю некоторый уровень контроля над оборудованием.Мы думали, что GWT может быть жизнеспособным решением.Наше приложение GWT должно иметь своего рода IPC с программным обеспечением C & C.Я не знаю, насколько это жизнеспособно, я не знаю, что мы хотим, чтобы программное обеспечение C & C было упаковано как веб-приложение, которое должно работать на сервере приложений.

У меня просто нет большого опыта в этом,Я думал, что клиент GWT будет взаимодействовать через RPC с сервером GWT, а сервер GWT будет иметь своего рода RPC (RMI ???) с C & C.

Ответы [ 4 ]

1 голос
/ 25 октября 2011

Я нашел решение с помощью Spring.Мы изменили большую часть нашего приложения Command and Control для использования Spring IoC, а затем мы использовали другие библиотеки Spring для расширения его функциональности.Чтобы взаимодействовать с GWT, мы предоставляли сервисы и использовали httpInvokers для выполнения вызовов из кода сервера GWT.

Конечно, это означало, что нам нужно было использовать Spring и с нашим приложением GWT, чтобы выполнять вызовы http изКод сервера GWT.Но все работает.

1 голос
/ 02 июня 2011

Другой вариант - запустить Java-апплет, который может взаимодействовать как с GWT (используя JSNI), так и с ОС.Простым примером может быть открытие общего файла в домашней папке пользователя и чтение / запись в этот файл (и приложение C & C делает то же самое).

1 голос
/ 02 июня 2011

Вы можете встроить встроенный tomcat или Jetty в свое приложение и позволить ему запускать простой веб-интерфейс на основе сервлетов / JSP или GWT.Фактически, когда вы отлаживаете / запускаете приложение GWT из Eclipse, оно запускается во встроенном экземпляре Tomcat.

0 голосов
/ 02 июня 2011

у вас нет прямого контроля над клиентской системой с помощью JavaScript (на котором основан GWT). в вашем случае использования, которое даже не имело бы смысла, зачем использовать внешний сервер для веб-сайта, управляющего локальной программой?

Если вы измените это (сервер приложений работает в той же системе, что и программное обеспечение C & C, а веб-клиент доступен везде), это было бы невозможно, но это не имело бы большого отношения к GWT. На сервере вы можете написать обычный код Java. GWT просто будет использоваться для веб-интерфейса и RPC-вызовов на сервер. Вызов программного обеспечения C & C с сервера приложений может быть осуществлен с помощью следующей строки (пример Windows):

Runtime.getRuntime().exec("C:\\PathTo\\Program.exe")

Эта функция возвращает экземпляр класса Process, который предоставляет Input- и OutputStream для имитации пользовательского ввода, а также для чтения и обработки выходных данных программ.

Обратите внимание, что при использовании этого метода вы теряете независимость от платформы, поскольку параметр для exec() выглядит по-разному для каждой ОС.

EDIT После повторного прочтения вашего вопроса, было бы даже более разумно интегрировать программное обеспечение C & C непосредственно в код сервера, как предполагает комментарий к вашему вопросу. вам нужен сервер приложений для использования GWT-RPC, а не веб-сервер, но это потрясающе. Информацию о том, как в целом работает GWT-RPC, можно найти здесь: (учебное пособие) , (подробное описание)

...