There was an unhandled failure on the server. java.lang.NullPointerException

Not really helpful :)

On Fri, 26 Feb 2021 at 16:18, Carlos Rovira <[email protected]> wrote:

> 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
>
>

-- 

*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]

Reply via email to