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