2010-10-07 10 views
0

Je veux utiliser le cadre de Parsley et je veux utiliser GraniteDS pour l'accès à distance. À partir de la version 2.1, GraniteDS génère des classes de service AS3 à partir de votre code Java en tant que proxies locaux, et je souhaite utiliser ces classes dans Persil.Comment utilisez-vous Parsley avec GraniteDS dans Flex?

Je peux injecter avec succès les classes de service persillés, mais quand je l'appelle l'un de leurs méthodes j'obtenir une erreur d'objet null

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] 

Ce serait parce que Persil crée des instances des classes de service sans réellement les injecter avec le "contexte" pertinent pour faire le remoting GraniteDS. J'ai besoin de comprendre comment donner le contexte GraniteDS aux classes de service que le persil instancie. J'ai vu a post on the parsley forums où quelqu'un recommandé:

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

... 

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

Mais cela ne fonctionne pas pour moi. Je suis familier avec GraniteDS mais pas avec Parsley alors peut-être que c'est la solution mais l'appliquer correctement est au dessus de ma tête.

Si quelqu'un utilise un autre framework comme Swiz ou Spring ActionScript, veuillez également passer cette solution car elle pourrait être très similaire.

MISE À JOUR: je me suis dit en lisant le code source de granit qui après avoir Injecter le service persillées (par exemple Bookservice), si je lance

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

Ensuite, je peux utiliser avec succès le service. Donc je suppose que j'ai juste besoin de savoir comment faire cela de manière automatique avec tous les services que je déclare dans Parsley.

Répondre

1

Je voudrais jeter un oeil à Piment au lieu de GraniteDS. C'est aussi une bibliothèque SpiceFactory ActionScript, comme Parsley

+0

"Tous les produits de Spicefactory ne sont plus maintenus activement car le créateur est passé à travailler avec différentes technologies.Les versions finales de Pimento et Cinnamon ont été publiées en août 2009." citation du site web de spicefactory – Edward