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

Reply via email to