Разрабатывали систему Виджетов для нашего сервиса, которые должны устанавливаться на "чужие" сервера, обращаться к нашему сервису, а потом строить графики, отчёты. После выпуска релиза оказалось, что мы при тестировании пропустили кросс-доменное (Cross-domain) тестирование. И у нас выскочила ошибка вида
Встала передо мной интересная задачка, написать маленькое Air приложение, которое получала бы данные с Java сервера. Использовать XML для таких задач - это против моей сущности. Не люблю я это дело. По этому сразу был взят курс на технологии LiveCycleDs и BlazeDs. Первая технология хороша, но очень уж дорога. BlazeDS бесплатна и свободо распрострянается. Её возможностей более чем за глаза хватает для решения поставленной передо мной задачи. Т.к. задача предполагает обращение к БД, то в дальнейшем планируется использовать Hibernate. И чтоб не завязываться на ручное инициализирование сессий и разруливание всяких проблемм с пулом соединений было принято решение использовать Spring для связи всё в единое пространство на стороне сервера.
В прошлой статье я описал настройку связи Java сервера и Flex (Air) келиента, используя BlazeDS под управлением Spring. В этой статье мы добавим связь с БД (Postgres 8.3) используя набор библиотек Hibernate3.
Некоторое время назад я задался вопросом, как организовать корректное тестирование серверной части своего приложения. Входные данные для решения этой задачи были следующими. Приложение работает на основе БД postgres 8.4, создания скелета приложения используется Spring 3, приложение собирается при помощи maven 2.1. Для тестирования была выбрана связка JUnit и DBUnit.
Передо мной встала задача определить следующее время, когда сработает cron-выражение. Надо заметить, что у нас в проекте на стороне сервера используется библиотека Quartz. Для решения этой задачи нашёл выход в виде выражения
Данное решение корректно вычисляет следующую дату, когда должно сработать cron-выражение.Очень часто бывает, что при использовании Hibernate, на серверной стороне Java, для исключения избыточности данных, часть полей помечаются как ленивые (lazy="true"). И в этом случае, когда данные сериализуются для передачи данных во Flex-уровень возникает LazyInitializationException. Очень желательно оградить такие поля от сериализации, так же бывает необходимо по различным причинам исключить часть полей из сериализации из Java-уровня во Flex.
В данном примере мы создадим простой проект в котором мы используем инструмент сборки проектов Maven 2, фреймоврк Spring, ORM Hibernante, и библиотеку для тестирования JUnit.