2011-02-02 2 views
1

У меня есть типичное приложение на основе Flex, которое было написано для использования бэкэнд Java/Hibernate/MySQL. Клиент изменил требования - теперь они хотят распространять его на компакт-диске, где пользователь может просто запустить приложение без какой-либо установки или сетевого подключения.Лучший путь для переноса существующего приложения Flex/Java/Hibernate/MySQL на компакт-диск для портативного дистрибутива?

Каков рекомендуемый путь миграции для этой ситуации?

Для этого мне, безусловно, необходимо устранить веб-сервер и сервер базы данных и адаптировать мое приложение (с минимальным количеством изменений, если возможно, конечно) к автономному приложению, которое поместится на CD/DVD ,

Мне удалось экспортировать данные в XML и прочитать его в Flex, но мне интересно, есть ли способ воссоздать структуры данных Hibernate в Flex, чтобы я мог изменить как можно меньше кода. В противном случае существует ли способ сохранить существующий Java/Hibernate внешним для кода Flex, но может быть восстановлен без установки Apache Tomcat или MySQL? Какие существуют другие варианты?

ответ

3

Если вы хотите самый простой способ, чтобы сделать эту работу, вы, вероятно, хотите сохранить службы уровня (т.е. Java/Hibernate/MYSQL), так как переключение на средства AIR вам придется снова переписать эту логику в flex. Я бы предложил запустить Jetty непосредственно на клиентской машине (при условии, что у них есть Java) и использовать HSQLDB в качестве хранилища данных резервного копирования (который поддерживает только наличие базы данных в памяти).Подавайте флеш-файл с Jetty и укажите браузер клиента по локальному URL-адресу. Еще лучше, простое приложение java, которое включает встроенный браузер, поэтому экземпляр причала будет убит, когда пользователь закроет приложение.

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

См:

+0

Это выглядит многообещающим. – HuckIt

0

Для автономного приложения вы хотите скомпилировать его как приложение AIR вместо Flex.
Мое предложение:

  • Создание нового проекта AIR
  • Скопируйте и вставьте большую часть вашей логике, не нужно много корректировок
  • Теперь в AIR вы будете иметь доступ к файловой системе, чтобы прочитать в вашем XML/CSV данные из SQL Экспорт

    protected function file_select(event:Event):void 
    { 
        file = (event.target as File); 
        file.addEventListener(Event.COMPLETE, file_completeHandler); 
        file.load(); 
    } 
    
    protected function file_completeHandler(event:Event):void 
    { 
        var xmlList:XMLList = XML(event.result); 
        //Now do your thing with the XML (You will most likely want to change the line above(
    } 
    
+0

Спасибо, но я уже получил SQL Экспорт считаны в Flex - это не проблема. Я хочу, чтобы объект XML в Flex вел себя как объекты Hibernate в Java. И я не могу использовать AIR по другим причинам, но это ничего не мешает. – HuckIt

+0

Почему вы не можете использовать AIR? Было бы лучше, чем если бы он был загружен только в браузере, нет? –

+0

Невозможно установить приложения на компьютер пользователя, включая движок AIR. – HuckIt

1

Я также хотел бы использовать приложение AIR. Используйте SQLite-Database. Я использую его также для некоторых проектов, и он отлично работает. Есть импорт-инструменты от mysql до sqlite (meastro), и если мой поиск в google был верным, в hibernate есть диалект для sqlite.

поэтому, я думаю, вы можете сохранить свой сервер.

=======

окна, извините, теперь я читал, что вы не можете установить воздушный двигатель. Так что моя идея плохая.

========

Но я не могу понять: Его разрешается устанавливать FlashPlayer, для отображения содержимого, но его не разрешается устанавливать воздушный плеер. Где деиониция. И есть много компьютеров в мире без flashplayer. Вы не можете предположить, что fp был установлен в первом случае. Что происходит тогда?

======

Другая идея может быть файл EXE.

Я никогда не пробовал, но проверить это link

+0

Это не для любого компьютера в мире, это для конкретного клиента. Поэтому я могу предположить, что установлен флеш-плеер. – HuckIt

+0

Решение Air2Exe кажется довольно хорошим, но я до сих пор не вижу причин, по которым Flash не может делать все, что может сделать Air. Я не вижу, что это решает мою проблему. Однако SQLite может быть ответом. – HuckIt

+0

хорошо, я понимаю, что вам нужно решение для распространения вашего webcontent на компакт-диске. Таким образом, у нас есть две проблемы. Сначала нам нужна пластина, которая может отображать ваш контент. Браузер не является опцией, поскольку он не распространяется и вы не можете установить AIR. Итак, моя идея состоит в том, чтобы конвертировать AIR в EXE. Поэтому ни один игрок не должен устанавливать. Во-вторых, мы должны переместить ваш сервер в локальные ресурсы. Таким образом, AIR и SQLite могут быть опцией. – Frank