Вопрос об интеграции Java и Flex - PullRequest
1 голос
/ 18 декабря 2008

У меня есть гибкое веб-приложение, и я хочу интегрировать его с Java.

Приложение будет иметь очень маленькую базу данных (2-3 таблицы) и некоторую рутинную логику, например отправку почты.

По этой ссылке (http://learn.adobe.com/wiki/display/Flex/2b.+Code+Files), Мне также понадобится файл .jsp. Я думал, что Flex будет интересовать только мои уроки?

Кроме того, мой java-метод будет принимать параметры - как я могу передать значения в текстовых полях страницы flex .mxml в java-метод? Простой пример действительно помог бы мне.

При использовании вызовов httpservice мне нужно знать что-нибудь еще?

Спасибо

Ответы [ 3 ]

3 голосов
/ 18 декабря 2008

Проверьте Blaze DS. Это довольно просто настроить, чтобы вы могли вызывать методы в ваших классах Java из Flex.

http://opensource.adobe.com/wiki/display/blazeds/BlazeDS/

В основном вы регистрируете RemoteObject, который ссылается на URL вашей конечной точки Flash Remoting и указывает место назначения (обычно имя класса). Консультируйтесь с документами WebOrb о том, как сделать это. Как только это будет сделано, вы можете просто вызвать RemoteObject следующим образом:

var token: AsyncToken = emailService.sendEmail (subject, body); token.addResponder (responderImpl);

Вы создаете реализацию интерфейса IResponder и регистрируете ее в «AsyncToken», который возвращается из вызовов удаленного взаимодействия во Flex. Все обращения к серверу во Flex являются асинхронными, поэтому вы регистрируете респондента, у которого затем вызывается метод результата или ошибки.

1 голос
/ 25 декабря 2008

Если вы используете BlazeDS (это сервлет, который вы добавляете на свой веб-сервер), вы сможете передавать объекты ActionScript при вызовах удаленного взаимодействия. Они будут перенаправляться в AMF по проводам, а затем переадресовываться в объекты Java. Вам необходимо использовать инструмент генератора кода, чтобы использовать службу удаленного взаимодействия Java и создать соответствующие классы ActionScript для использования на клиенте (для отправки аргументов и последующего получения результата).

Flex также поддерживает вызовы веб-служб в стиле SOAP. Менее эффективен, чем AMF, но не важен, если обмен данными происходит не так много.

Когда я спешу сделать что-то очень быстрое и грязное, я просто выполняю вызов send () HttpService, где я составил HTTP POST (данные не видны в URL-адресе, как в GET ). Быстро написанный Java-сервлет обрабатывает POST и получает данные в виде карты пар имя / значение в текстовом формате. (Метод HttpSerivce.send () ведет себя асинхронно, как механизм AJAX XmlHttpRequest ().)

Это просто не проще, чем делать что-то подобное, но пары имя / значение не так гибки, как структурированные данные. Иногда вам нужно иметь дело с более сложными структурированными данными. Следовательно, сериализация объектов модели ActionScript в графы объектов AMF с помощью удаленного взаимодействия BlazeDS вступает в свои права.

1 голос
/ 18 декабря 2008

Другой вариант - использовать Ajax (например, JavaScript) в качестве посредника между Flex и Java на стороне вашего сервера, чтобы обеспечить хорошее разделение между рабочим и бизнес-уровнями. Я видел, как это было успешно сделано - Flex может легко вызывать JavaScript, и есть много проверенных шаблонов для представления ваших объектов / методов Java в JavaScript для вызова в стиле Ajax ( DWR - хороший выбор).

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