Вызов собственного (C ++) кода в GWT - PullRequest
2 голосов
/ 28 июня 2010

Я разрабатываю приложение в GWT, которое должно вызывать собственный код C ++ в Directshow для выполнения некоторой обработки мультимедиа. Я предполагаю, что не могу использовать JNI, потому что GWT преобразует код в javascript. Я просматривал похожие посты на форум (и на сайте GWT о JSNI), но не могу найти пример, в котором конкретно говорится о вызове кода C ++ из GWT (в основном о вызове кода Java из Javascript). Может кто-нибудь пролить свет на это или направить меня к учебнику?

Ответы [ 2 ]

4 голосов
/ 28 июня 2010

Где именно должен выполняться этот код? Конечно, не на стороне клиента. Собственный нативный код на стороне клиента далеко не так популярен.

GWT может взаимодействовать с JSNI для написания собственного JS-кода внутри Java-кода GWT или для взаимодействия с внутренними компонентами Java, в то время как инфраструктура обрабатывает RPC. Даже без GWT у вас нет возможности запускать собственный код из браузера (по крайней мере, в ближайшем будущем).

Итог - если вы не можете сделать это простым ванильным Javascript на стороне клиента, вы не можете сделать это в GWT.

Что вы можете сделать - это использовать этот нативный код в бэкэнде и вызывать его через классический JNI из ваших бэкэнд-классов Java (и тогда, какое это имеет значение, если он является частью Проект GWT или нет?), Но, похоже, это не тот случай.

1 голос
/ 28 июня 2010

Прежде всего, необходимо четко разделить клиент (HTML / Javascript, работающий в браузере) и компоненты сервера (сервлеты java-службы).

Если я правильно понял формулировку вашей проблемы, вам нужен пользовательский интерфейс, чтобыСоберите параметры для ваших транскодеров, и ваши транскодеры должны работать на компьютере с Windows.

Вы можете найти любое простое приложение GWT, чтобы выяснить, как обслуживать приложение GWT в любом контейнере (возможно, пока), и обрабатывать основные входные данные HTML-формы.Когда у вас есть все параметры на сервере, вам необходимо выяснить, как делегировать эти параметры, отправленные из браузера (вашего приложения GWT) из сервисного сервлета (работающего на веб-сервере) в ваше приложение DirectShow.Начиная с этого момента, это Java-приложение, говорящее о нативной проблеме процесса.

Вы можете использовать различные способы передачи параметров в собственное приложение DirectShow.Самое простое решение - инициировать приложение с помощью метода exec, передавая встроенные параметры команды.В противном случае вы можете общаться с работающим собственным приложением через сокеты TCP или интегрировать собственное приложение с помощью JNI.Все зависит от вашего архитектурного проекта, какой подход вы хотите выбрать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...