Как вы используете петрушку с GraniteDS во Flex? - PullRequest
0 голосов
/ 07 октября 2010

Я хочу использовать каркас 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, пожалуйста, передайте это решение, так как оно может быть очень похожим.

UPDATE: Я выяснил, прочитав исходный код Granite, что после запуска службы с Parsley (например, bookService), если я запускаю

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

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

1 Ответ

1 голос
/ 21 ноября 2010

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

...