2010-10-07 2 views
0

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

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

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] 

Это будет потому, что Петрушка создает экземпляры классов обслуживания без фактического их инжекции с соответствующим «контекстом» для удаленного доступа GraniteDS. Мне нужно выяснить, как передать контекст GraniteDS в классы сервисов, которые создает экземпляр parsley. Я видел a post on the parsley forums, где кто-то рекомендовал:

<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: я понял, прочитав исходный гранитный код, который после того, как я впрыснуть услугу с петрушкой (например bookService), если я бегу

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

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

ответ

1

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

+0

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

Смежные вопросы