Как вы используете петрушку с 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.

1 ответ

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

Другие вопросы по тегам