Как вы используете Parsley с GraniteDS во Flex?

Я хочу использовать фреймворк Parsley и GraniteDS для удаленного взаимодействия. Начиная с версии 2.1, GraniteDS генерирует классы обслуживания AS3 из вашего кода Java в качестве локальных прокси-серверов, и я хочу использовать эти классы в Parsley.

Я могу успешно внедрить классы обслуживания с помощью Parsley, но когда я вызываю любой из их методов, я получаю ошибку нулевого объекта.

at org.granite.tide::Component/http://www.adobe.com/2006/actionscript/flash/proxy::callProperty()[C:\workspace_\graniteds\as3\framework\org\granite\tide\Component.as:172]
at library::BookServiceBase/get()[C:\Documents and Settings\MedLineTec\Adobe Flash Builder 4\library\src\library\BookServiceBase.as:36]

Это может быть связано с тем, что Parsley создает экземпляры классов обслуживания, фактически не внедряя в них соответствующий «контекст» для удаленного взаимодействия с GraniteDS. Мне нужно выяснить, как передать контекст GraniteDS классам обслуживания, которые создает петрушка. Я видел сообщение о петрушке форумы, где кто-то рекомендовал:

<parsley:ContextBuilder>
      <parsley:FlexConfig type="{UserManagerConfig}"/>
      <parsley:RuntimeConfig instances="{[tideContext]}" />
</parsley:ContextBuilder>

...

[Bindable]
private var tideContext:Context = Spring.getInstance().getSpringContext(); 

Но это не сработало для меня. Я знаком с GraniteDS, но не с Parsley, поэтому, возможно, это решение, но правильное его применение выше моей головы.

Если у кого-то это происходит с другой платформой, такой как Swiz или Spring ActionScript, пожалуйста, также передайте это решение, поскольку оно может быть очень похожим.

ОБНОВЛЕНИЕ: прочитав исходный код Granite, я понял, что после внедрения службы с помощью Parsley (например, bookService), если я запускаю

private var tideContext:Context = Spring.getInstance().getSpringContext(); 
bookService.meta_init("bookService", tideContext);

Тогда я смогу успешно пользоваться сервисом. Поэтому я думаю, мне просто нужно знать, как сделать это автоматически со всеми сервисами, которые я объявляю в Parsley.


person Fletch    schedule 07.10.2010    source источник


Ответы (1)


Я бы посмотрел на Pimento вместо GraniteDS. Это также библиотека ActionScript SpiceFactory, как и Parsley.

person JGFMK    schedule 21.11.2010
comment
Все продукты Spicefactory больше не поддерживаются активно, поскольку создатель перешел к работе с другими технологиями. Окончательные версии Pimento и Cinnamon были выпущены в августе 2009 года. цитата с сайта spicefactory. - person Edward; 22.02.2013