Здесь немного путаницы. Что делает Blaze следующим образом:
Реализует формат AMF (это родной формат Flash для сериализации объектов Flash). Так что он знает, как писать и читать Flash-объекты.
Реализует некоторые расширенные функции, необходимые для фреймворка Flex (что на самом деле плохо, потому что оно плохо написано, и оно вам никогда не понадобится, но это целая отдельная история). Например, он предоставляет серию классов, имитирующих их аналоги Flex в Java, а на стороне Flex имитирует карты, деревья и т. Д. (Даже не пытайтесь использовать это).
Создает специальный обработчик (-ы), который будет загружен вашим веб-сервером (Tomcat, JBoss и т. Д.) И обработать входящее соединение со Flash. Этот обработчик создается за сеанс - что бы это ни значило в вашем контексте. Этот обработчик также известен как FlexHandler (так оно обычно появляется в файлах конфигурации).
Что Blaze не делает:
Это не создает исходные файлы (без источников объектных значений не генерируются - вы должны сделать это самостоятельно). Однако он имеет некоторые обычно используемые типы - все числовые типы, строки, булевы, некоторые коллекции и т. Д.
Он не отражает существующий код и не интегрируется в Flash Builder. Программа, которая называется Fiber, предоставляется Adobe (тот же источник), но это совершенно другая вещь, она является проприетарным продуктом, она преследует другие цели (она может генерировать код для языков, кроме Java, например).
Fiber - это в основном экспериментальный продукт, он был введен в Flash Builder 4 (это примерно год назад), и в настоящее время он чрезвычайно сырой. В принципе, это полезно только в качестве иллюстрации или доказательства концепции, но она не была проверена в полевых условиях (и найти добровольцев трудно :)
remoting-config.xml не является специальным именем любого однако, в силу того, что многие из многих копируются, имя распознается как часть services-config.xml (имя, опять же, не имеет особого значения и может быть изменено, однако его обычно называют по этому имени). Эти файлы имеют двойное назначение. Когда приложение Flex скомпилировано, эти файлы могут использоваться компилятором Flex для создания некоторых настроек по умолчанию для RemoteObject (вы, вероятно, не хотите делать это таким образом, если вы не уверены в том, что делаете, но даже тогда , вы, вероятно, не захотите этого делать ...). С другой стороны, эти настройки используются FlexHandler (упомянутый выше), чтобы знать, где он должен ожидать подключения клиента Flash. Позже это особенно сложный вопрос, потому что невозможно отлаживать код Blaze разумным способом, и очень сложно определить, что именно является базовым URL и т. Д. К счастью для вас, вы можете заменить этот абракадабра: <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf"
с чем-то более сознательным, как <endpoint url="http://server-name/gateway"
(т.е. не нужно искать для значений server.name
и server.port
- это действительно очень трудно найти, где они скрываются
классы, порожденные Fiber (EntityMetadata, _SuperXxx и так далее), в конечном счете,. Это попытка отразить Java-код и привить некоторую аналогичную логику в коде AS3. Увы, люди, которые написали это, не имели понятия о том, как работает AS3, - так что происходит там чистое безумие.
Есть определенные правила, в том, как вы переводите значение объекта Java в Flash:
На любой стороне вы можете добавить дополнительные свойства, которые не существуют на другой стороне. Blaze не будет заполнять их (очевидно), но свойства будут существовать и будут доступны.Недостаток - вы получите кучу ошибок rutnime (подавленных) с обеих сторон. Чтобы этого избежать, на стороне AS3 вы можете отметить нежелательное свойство как [Transient]
. Но подумайте дважды, прежде чем это сделать - это признак плохого дизайна. В идеале вам это не нужно. Я не знаю, что такое Java-переход Transient.
У вас не может быть объекта с одноименным названием, но другого типа - такие ошибки не подавляются.
Традиционно для Java свойств логического типа называется isSomething
- для Blaze вам придется сделать исключение, или назвать их (get|set)IsSomething
, если вы настаиваете ...
объектов Значения создаются Blaze на стороне Java, когда он вызывает функции Java, предназначенные для обслуживания обработчиков. Очевидно, они выглядят как аргументы обработчикам. Объекты Value создаются на Flash-стороне самим Flash-плеером - это создает определенные проблемы, такие как - нет возможности передавать счетчики - в любом случае попытается вызвать конструктор в классе AS3. Допустимы аргументы конструктора, не относящиеся к умолчанию.
При подключении к службе в Flash Builder - пожалуйста, не делайте этого. Никто на самом деле не знает, что именно вы делаете. Код является проприетарным, и никаких обещаний о замораживании функций и т. Д. Не было. На сегодняшний день намного проще для тех, кто может программировать, другими словами, щелкая мышью, на самом деле писать программный код, а затем делать это пошаговым способом мастера.
Blaze только генерирует объекты ценности во время выполнения - вы можете быть почти уверены в этом. Это предсказуемо, и если произойдет серьезное изменение, вы обязательно получите уведомление :) Blaze не генерирует исходный код.
Начало этого видео рассказывает о создании сервисов и объектов ценности: http://tv.adobe.com/watch/flex-in-a-week-day-2/generating-value-objects -Использование-флэш-строитель-данных-услуги / –