Hi, but that seems a problem in backend, not Royale. are you trying to go from very simple initial calls to more complex ones?
El vie, 26 feb 2021 a las 16:38, David Slotemaker de Bruine (< dslotema...@vicensvives.com>) escribió: > There was an unhandled failure on the server. > java.lang.NullPointerException > > Not really helpful :) > > On Fri, 26 Feb 2021 at 16:18, Carlos Rovira <carlosrov...@apache.org> > wrote: > >> Hi, >> >> we need to see the NPE you refer >> thanks >> >> El vie, 26 feb 2021 a las 11:49, David Slotemaker de Bruine (< >> dslotema...@vicensvives.com>) 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 <carlosrov...@apache.org> >>> 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 (< >>>> dslotema...@vicensvives.com>) 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 < >>>>> dslotema...@vicensvives.com> 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 < >>>>>> piotrzarzyck...@gmail.com> 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 <carlosrov...@apache.org> >>>>>>> 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 <piotrzarzyck...@gmail.com> can >>>>>>>> help you I don't have many experience, sorry >>>>>>>> >>>>>>>> >>>>>>>> El mar, 23 feb 2021 a las 15:18, David Slotemaker de Bruine (< >>>>>>>> dslotema...@vicensvives.com>) 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 < >>>>>>>>> dslotema...@vicensvives.com> wrote: >>>>>>>>> >>>>>>>>>> Great! Thank you! >>>>>>>>>> >>>>>>>>>> I will give it a shot! >>>>>>>>>> >>>>>>>>>> On Thu, 18 Feb 2021 at 17:07, Carlos Rovira < >>>>>>>>>> carlosrov...@apache.org> 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 (< >>>>>>>>>>> carlosrov...@apache.org>) 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 (< >>>>>>>>>>>> carlosrov...@apache.org>) 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 (< >>>>>>>>>>>>> dslotema...@vicensvives.com>) 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 >>>>>>>>>> >>>>>>>>>> dslotema...@vicensvives.com >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> *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 >>>>>>>>> >>>>>>>>> dslotema...@vicensvives.com >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> 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 >>>>>> >>>>>> dslotema...@vicensvives.com >>>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> *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 >>>>> >>>>> dslotema...@vicensvives.com >>>>> >>>> >>>> >>>> -- >>>> 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 >>> >>> dslotema...@vicensvives.com >>> >> >> >> -- >> 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 > > dslotema...@vicensvives.com > -- Carlos Rovira Apache Member & Apache Royale PMC *Apache Software Foundation* http://about.me/carlosrovira