Hi, we need to see the NPE you refer thanks
El vie, 26 feb 2021 a las 11:49, David Slotemaker de Bruine (< [email protected]>) escribió: > Hi Carlos, > > OK. Thanks. > > I think there is something wrong with the QuickStart project for Crux for > RemoteObjects and BlazeDS. > > I can now call the server but get NullPointer Exceptions as a result. > > So I tried in another project to make the same call having everything in > the same mxml (RemoteObject, Handles etc). This call works fine with the > exception of duplicate HTTP errors on the first call. > > When I take the same code and compile it in the crux project I still get > NullPointer exceptions. Could it be the compiler arguments? > > The project that works has: > > -theme=${royalelib}/themes/JewelTheme/src/main/resources/defaults.css > -html-template=src/resources/jewel-index-template.html > -js-library-path+=${royalelib}/js/libs/MXRoyaleJS.swc > -compiler.exclude-defaults-css-files=MXRoyaleJS.swc:defaults.css > +configname=flex -js-library-path+=${royalelib}/js/libs/MXRoyaleJS.swc > > The Crux project has: > -theme=${royalelib}/themes/JewelTheme/src/main/resources/defaults.css > -html-template=src/main/resources/crux-jewel-example-index-template.html > -js-default-initializers=true > -keep-as3-metadata+=Inject,Dispatcher,EventHandler,PostConstruct,PreDestroy,ViewAdded,ViewRemoved,Bindable,Transient > -keep-code-with-metadata=Inject +configname=flex > -js-library-path+=${royalelib}/js/libs/MXRoyaleJS.swc > > Any tips would be great, > > David > > > > > On Thu, 25 Feb 2021 at 18:14, Carlos Rovira <[email protected]> > wrote: > >> Hi David, >> >> the class to be used on the Service class should be: >> >> mx.rpc.remoting.RemoteObject; >> >> while the class used when you add in bean provider mxml file is >> mx.rpc.remoting.mxml.RemoteObject; >> although is transparent to you since you use <mx:RemoteObject/> without >> the need of any import. >> >> HTH >> >> Carlos >> >> >> El jue, 25 feb 2021 a las 18:08, David Slotemaker de Bruine (< >> [email protected]>) escribió: >> >>> Hi All, >>> >>> So after talking with Piotr I found my problem was I hadn't added the >>> new Controller Component to the Beans.mxml. That is the key so that Crux >>> knows where to assign the events the app dispatches. >>> >>> One issue we did run into was that the definition of the RemoteObjects >>> weren't detected when they where defined in a seperate ServicesConfig.mxml >>> within the config directory. Even though this file was referenced in >>> <crux:beanProviders>. >>> >>> Adding the remote object definitions directly to Beans.mxl was the key. >>> >>> Also when Injecting the RemoteObject into the new XXXService.as file it >>> is of type: >>> >>> mx.rpc.remoting.mxml.RemoteObject; >>> >>> I now have issues getting the correct response from the server, but that >>> will be another post :) >>> >>> >>> >>> >>> On Thu, 25 Feb 2021 at 08:42, David Slotemaker de Bruine < >>> [email protected]> wrote: >>> >>>> Hi Piotr, I will send you a link with the code, cheers! I will then >>>> post the solution back here when we find it! >>>> >>>> David >>>> >>>> On Wed, 24 Feb 2021 at 17:23, Piotr Zarzycki <[email protected]> >>>> wrote: >>>> >>>>> David, >>>>> >>>>> You can send me code of your project and I will take a look at it. I >>>>> don't see any connection to Moonshine here. We need more data to help you. >>>>> The best would be if you could provide source code by uploading on some >>>>> server - if you can of course. >>>>> >>>>> Thanks, >>>>> Piotr >>>>> >>>>> śr., 24 lut 2021 o 17:13 Carlos Rovira <[email protected]> >>>>> napisał(a): >>>>> >>>>>> Hi David, >>>>>> >>>>>> the two lines refers to 2 injects in UserController. Since I don't >>>>>> know the code I guess you have 2 injections there. >>>>>> You talk then about a "usuarioController", but I don't know what is. >>>>>> Is not UserController? is other controller? then you need to add as well >>>>>> to >>>>>> your beanprovider. >>>>>> >>>>>> About Moonshine, maybe @Piotr Zarzycki <[email protected]> can >>>>>> help you I don't have many experience, sorry >>>>>> >>>>>> >>>>>> El mar, 23 feb 2021 a las 15:18, David Slotemaker de Bruine (< >>>>>> [email protected]>) escribió: >>>>>> >>>>>>> Hi Carlos, >>>>>>> >>>>>>> OK, >>>>>>> >>>>>>> I created everything you said, a new: >>>>>>> >>>>>>> ServicesConfig.mxml in the config folder and pointed to it >>>>>>> in <crux:beanProviders> >>>>>>> >>>>>>> Then I created: >>>>>>> UsuarioController >>>>>>> UsuarioEvent >>>>>>> UsusarioService >>>>>>> >>>>>>> for my "usuario" needs. >>>>>>> >>>>>>> The thing is, It does seem that the new controller is being >>>>>>> referenced during compile time. I Get the following: >>>>>>> >>>>>>> Activating JSStageEvents >>>>>>> : InjectProcessor set up [Inject] on Bean{ source: [object Object], >>>>>>> name: userController } >>>>>>> : InjectProcessor set up [Inject] on Bean{ source: [object Object], >>>>>>> name: userController } >>>>>>> : [PostConstruct] executing createDefaultUser in UserController >>>>>>> : [JS] application setUp stub >>>>>>> >>>>>>> 2 for userController but none for usuarioController. >>>>>>> >>>>>>> When I call the UsuarioEvent, it dispatchers but doesn't get sent to >>>>>>> the UsuarioController. The userEvent dispatch correctly and is sent to >>>>>>> the >>>>>>> UserContoller without a problem. >>>>>>> >>>>>>> 2 additional points of information. >>>>>>> >>>>>>> 1. Breakpoints (In Moonshine) are not working in the project, but >>>>>>> they are in others. >>>>>>> 2. There is a blue squiggle at the start of some of the files >>>>>>> stating that the files are not within the source directory, but they >>>>>>> are. >>>>>>> >>>>>>> Any ideas? >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Thu, 18 Feb 2021 at 17:42, David Slotemaker de Bruine < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Great! Thank you! >>>>>>>> >>>>>>>> I will give it a shot! >>>>>>>> >>>>>>>> On Thu, 18 Feb 2021 at 17:07, Carlos Rovira < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> ok, let's go: >>>>>>>>> >>>>>>>>> 1.- REMOTEOBJECTS: You will have a mxml file that extends from >>>>>>>>> Crux BeanProvider. Let's call it ServicesConfig.mxml. There you have >>>>>>>>> all >>>>>>>>> you mx:RemoteObject objects. So this object will provide all remote >>>>>>>>> objects >>>>>>>>> to the rest of your app: >>>>>>>>> >>>>>>>>> <mx:RemoteObject id="loginService" >>>>>>>>> destination="loginService" >>>>>>>>> channelSet="{loginChannel}" >>>>>>>>> showBusyCursor="true"/> >>>>>>>>> >>>>>>>>> 2.- SERVICE: Then you have a "delegate" like in Cairngorm where >>>>>>>>> you inject the remote object: >>>>>>>>> >>>>>>>>> [Inject(source="loginService", required="true")] >>>>>>>>> public var service :RemoteObject = null; >>>>>>>>> >>>>>>>>> So the remoteobject with name "loginService" will be injected in >>>>>>>>> the public var service. In this delegate you can do things like this: >>>>>>>>> >>>>>>>>> public function recoverPassword(username :String, password :String) >>>>>>>>> :AsyncToken { >>>>>>>>> return service.recoverPassword(username, password); >>>>>>>>> } >>>>>>>>> >>>>>>>>> 3.- CONTROLLER: Here you have controller methods that will be >>>>>>>>> called with events and this will in the end call service methods in >>>>>>>>> the >>>>>>>>> delegate layer: >>>>>>>>> >>>>>>>>> [EventHandler(event="LoginEvent.RECOVER_PASSWORD", properties= >>>>>>>>> "password")] >>>>>>>>> public function passwordRecovery(password :String) :void { >>>>>>>>> executeServiceCall(loginDelegate.recoverPassword(model.recoverUsername, >>>>>>>>> password), passwordRecoveryHandler); >>>>>>>>> } >>>>>>>>> >>>>>>>>> executeServiceCall is a Crux function that allow you to call a >>>>>>>>> service method and attach a result and fault handlers that will be on >>>>>>>>> this >>>>>>>>> controller. So in a controller you have that method plus two handlers >>>>>>>>> (result and fault, but probably just the first since the second use >>>>>>>>> to be >>>>>>>>> the same reusable for all) >>>>>>>>> >>>>>>>>> 4.- EVENT: You extend from CruxEvent and have things like this: >>>>>>>>> >>>>>>>>> public static const RECOVER_PASSWORD:String = >>>>>>>>> "login.recoverPassword"; >>>>>>>>> >>>>>>>>> that match with the one in the controller. >>>>>>>>> >>>>>>>>> 5.- VIEW: Here you send the event: >>>>>>>>> >>>>>>>>> var event :LoginEvent = new LoginEvent(LoginEvent.RECOVER_PASSWORD >>>>>>>>> ); >>>>>>>>> event.password = newpassword.text; >>>>>>>>> dispatchEvent(event); >>>>>>>>> >>>>>>>>> And that's all >>>>>>>>> >>>>>>>>> I think this is a very simple but powerful arquitecture that >>>>>>>>> allows to organize code in a very good way, while using plain objects >>>>>>>>> without the need of extensions and more, since objects are injected. >>>>>>>>> >>>>>>>>> HTH >>>>>>>>> >>>>>>>>> Carlos >>>>>>>>> >>>>>>>>> El jue, 18 feb 2021 a las 16:51, Carlos Rovira (< >>>>>>>>> [email protected]>) escribió: >>>>>>>>> >>>>>>>>>> Hi David, >>>>>>>>>> >>>>>>>>>> we have it here [1], but anyway I'll try to give a bit more info. >>>>>>>>>> >>>>>>>>>> [1] >>>>>>>>>> https://apache.github.io/royale-docs/libraries/crux/service-layer >>>>>>>>>> >>>>>>>>>> El jue, 18 feb 2021 a las 16:49, Carlos Rovira (< >>>>>>>>>> [email protected]>) escribió: >>>>>>>>>> >>>>>>>>>>> Hi David, >>>>>>>>>>> >>>>>>>>>>> I'll try to write this on a wiki, since I don't think we have a >>>>>>>>>>> working example. Hope to come back to you soon. >>>>>>>>>>> >>>>>>>>>>> El jue, 18 feb 2021 a las 15:54, David Slotemaker de Bruine (< >>>>>>>>>>> [email protected]>) escribió: >>>>>>>>>>> >>>>>>>>>>>> Hi All, >>>>>>>>>>>> >>>>>>>>>>>> I come from a Flex Cairngorm background and I am trying to get >>>>>>>>>>>> my head around Crux and the Crux example. >>>>>>>>>>>> >>>>>>>>>>>> I have gone through the tutorial and read the documentation. >>>>>>>>>>>> But I am stuck on where to place my RemoteObject tags and how to >>>>>>>>>>>> reference/call them. >>>>>>>>>>>> >>>>>>>>>>>> The first code snippet from: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> https://apache.github.io/royale-docs/libraries/crux/service-layer >>>>>>>>>>>> >>>>>>>>>>>> Shows the injection of a "userService" RemoteObject and a >>>>>>>>>>>> "ServiceHelper". Where should these code if I am using the >>>>>>>>>>>> CruxQuickStart >>>>>>>>>>>> as a base? In UserService.as? Where should the <mx:RemoteObject> >>>>>>>>>>>> be defined >>>>>>>>>>>> so it can be injected? >>>>>>>>>>>> >>>>>>>>>>>> Any help would be great! >>>>>>>>>>>> >>>>>>>>>>>> David >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Carlos Rovira >>>>>>>>>>> Apache Member & Apache Royale PMC >>>>>>>>>>> *Apache Software Foundation* >>>>>>>>>>> http://about.me/carlosrovira >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Carlos Rovira >>>>>>>>>> Apache Member & Apache Royale PMC >>>>>>>>>> *Apache Software Foundation* >>>>>>>>>> http://about.me/carlosrovira >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Carlos Rovira >>>>>>>>> Apache Member & Apache Royale PMC >>>>>>>>> *Apache Software Foundation* >>>>>>>>> http://about.me/carlosrovira >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>>> *David Slotemaker de Bruïne* >>>>>>>> *Head of Educational Robotics* >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Av. Sarriá, 130 - 08017 Barcelona >>>>>>>> <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> >>>>>>>> >>>>>>>> >>>>>>>> T. +34 932 523 729 ext. 135 >>>>>>>> >>>>>>>> [email protected] >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> *David Slotemaker de Bruïne* >>>>>>> *Head of Educational Robotics* >>>>>>> >>>>>>> >>>>>>> >>>>>>> Av. Sarriá, 130 - 08017 Barcelona >>>>>>> <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> >>>>>>> >>>>>>> >>>>>>> T. +34 932 523 729 ext. 135 >>>>>>> >>>>>>> [email protected] >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Carlos Rovira >>>>>> Apache Member & Apache Royale PMC >>>>>> *Apache Software Foundation* >>>>>> http://about.me/carlosrovira >>>>>> >>>>>> >>>>> >>>>> -- >>>>> >>>>> Piotr Zarzycki >>>>> >>>> >>>> >>>> -- >>>> >>>> *David Slotemaker de Bruïne* >>>> *Head of Educational Robotics* >>>> >>>> >>>> >>>> Av. Sarriá, 130 - 08017 Barcelona >>>> <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> >>>> >>>> >>>> T. +34 932 523 729 ext. 135 >>>> >>>> [email protected] >>>> >>> >>> >>> -- >>> >>> *David Slotemaker de Bruïne* >>> *Head of Educational Robotics* >>> >>> >>> >>> Av. Sarriá, 130 - 08017 Barcelona >>> <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> >>> >>> >>> T. +34 932 523 729 ext. 135 >>> >>> [email protected] >>> >> >> >> -- >> Carlos Rovira >> Apache Member & Apache Royale PMC >> *Apache Software Foundation* >> http://about.me/carlosrovira >> >> > > -- > > *David Slotemaker de Bruïne* > *Head of Educational Robotics* > > > > Av. Sarriá, 130 - 08017 Barcelona > <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> > > > T. +34 932 523 729 ext. 135 > > [email protected] > -- Carlos Rovira Apache Member & Apache Royale PMC *Apache Software Foundation* http://about.me/carlosrovira
