В последнее время Rich Internet Applications (RIA) получают все большую популярность. Основная идея заключается в том, чтобы перенести подходы к разработке пользовательского интерфейса из настольных приложений в веб-браузер.
Ключевым элементом при создании RIA является использование адекватного инструмента для построения UI, который позволяет создавать интерфейс в стиле desktop-приложений и при этом не требует чрезмерных усилий.
Технология Adobe Flex является одним из таких инструментов. Благодаря распространенности Flash player, практически каждый пользователь сети может в своем браузере запускать приложения, написанные на ActionScript, с использованием платформы Flash. А технология Flex расширяет Flash возможностью создавать приложения со стандартизированным пользовательским интерфейсом.
Следующим важным элементом RIA является использование серверной технологии и осуществление обмена данными с клиентским приложением. Хорошим дополнением для Flex является Java application server. Для поддержки формата AMF (стандартный механизм RPC для Flex) на стороне сервера существует ряд Java-библиотек. Мы остановим свой выбор на библиотеке BlazeDS по причине, которая станет понятна далее.
В настоящее время, наличие автоматизированной build-системы рассматривается как обязательный атрибут разработки. Главным критерием такой системы является возможность сборки всех модулей проекта "одним кликом".
В Java-мире стандартом de facto стал Apache Maven 2. Это инструмент, который, кроме сборки проекта, также может управлять конфигурациями и внешними зависимостями. А для облегчения создания проектов с заранее известной комбинацией технологий и типовой конфигурацией существуют шаблоны - так называемые архетипы (archetype).
Для нашей задачи самым подходящих архетипом является maven-blazeds-spring-archetype. Он предоставляет шаблон RIA со следующим стеком технологий - Flex, Java, BlazeDS, Spring.
Попробуем с его помощью создать тестовое приложение - quickstart.
Для этого необходимо открыть корневую папку с проектами, скопировать следующий текст в batch file и запустите его (символ ^ задает продолжение команды на новой строке):
mvn archetype:generate ^ -DartifactId=quickstart ^ -DarchetypeCatalog=http://maven-blazeds-spring-archetype.googlecode.com/svn/maven2/При выполнении команды будет задано несколько вопросов:
- Choose archetype: <ENTER>
- Default value for groupId: org.company.quickstart
- Default value for version: <ENTER>
- Default value for package: <ENTER>
- Confirm properties configuration: Y
- app-flex-config - общий проект с настройками для Flex RPC и Java BlazeDS. Главные элементы этого проекта - файлы services-config.xml и remoting-config.xml
- app-flex - проект, содержащий исходный код Flex front-end
- app-web - проект, содержащий исходный код на Java плюс интеграция с BlazeDS и Spring Framework
- Значение переменной flex.sdk.version - 3.4.0.9271
- Значение переменной flex-mojos.version - 2.0.3
- Значение contextRoot для flex-compiler-mojo - ${parent.artifactId}
- Значение finalName - ${parent.artifactId}
<logging> <target class="flex.messaging.log.ConsoleTarget" level="Debug"/> </logging>После этого можно осуществить сборку проекта следующей командой (из папки quickstart):
mvn clean install -DtemplateURI=folder:html-templateРезультатом сборки будет являться Java web application archive (WAR) - файл quickstart/app-web/target/quickstart.war Этот файл позволяет сделать deployment приложения в любой подходящий Java application server, например Apache Tomcat или WebLogic. Допустим, у нас имеется Tomcat, запущенный по адресу localhost:8080. Тогда после установки приложения quickstart.war, тестовая страница будет доступна по адресу: http://localhost:8080/quickstart/quickstart-flex-1.0-SNAPSHOT.html На этой странице будет запущено Flex-приложение с одним полем ввода и кнопкой Say. При вводе значения в поле и нажатия на кнопку, должно появиться сообщение "Hello, <значение>". Это значение формируется на серверной стороне для демонстрации интеграции Flex и Java, в чем несложно убедиться, посмотрев потом сообщений AMF в серверной консоли. Это, пожалуй, минимальное описание возможностей архетипа maven-blazeds-spring-archetype. Кроме того, он демонстрирует интеграцию BlazeDS со Spring framework, показывает как писать интеграционные тесты и содержит конфигурационные файлы для Eclipse/Flex Builder. Для более подробного изучения вопроса необходимо читать документацию Maven, BlazeDS, Spring и смотреть внутреннее устройства архетипа maven-blazeds-spring-archetype.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.