Hi Carlos, I will give it some thought. What you are proposing makes sense in terms of helping people understand. But the warning is not actually being generated by Crux, but by a reflection utility method that Crux is using.
On Wed, Jul 29, 2020 at 7:45 PM Carlos Rovira <[email protected]> wrote: > Hi Greg, > > I prefer to maintain and maybe could be better to add some docs to Crux > with your explanation and a plus could be to add a link to the docs in the > warning. So people getting it see the link and could jump to the web to > read what it implies. what do you think? > > > > El mié., 29 jul. 2020 a las 1:01, Greg Dove (<[email protected]>) > escribió: > >> >> >> The 'WARNING' is just a warning. It will not appear in a release build. >> It appears in this case of the HTTPService class because >> js-default-initializers is off by default in the framework builds. >> Ignoring the warning in most cases it will probably be ok (particularly >> in this case, where there are no actual static constants on the reflection >> target). But it could result in problems in some rare cases, and the >> warning would provide a helpful clue for those situations. >> If someone did something like MyClass["MY_FAKE_CONSTANT"] = 'fake' it >> would incorrectly collect 'MY_FAKE_CONSTANT' as a constant during the Crux >> reflection checks for a class that did not have >> js-default-initializers=true when it was compiled. That seems quite rare, >> so we could perhaps remove this warning. >> >> What does everyone think? >> >> >> >> >> >> >> On Wed, Jul 29, 2020 at 8:02 AM Carlos Rovira <[email protected]> >> wrote: >> >>> Hi Harbs, >>> >>> I think @Greg Dove <[email protected]> could better respond to it. I >>> think all objects injected by Crux need to be compiled with that flag to >>> true to remove that warning. >>> >>> El mar., 28 jul. 2020 a las 21:56, Harbs (<[email protected]>) >>> escribió: >>> >>>> Right. But what values need to be initialized? >>>> >>>> On Jul 28, 2020, at 2:29 PM, Carlos Rovira <[email protected]> >>>> wrote: >>>> >>>> Hi, >>>> >>>> -js-default-initializers=true is required by Crux, but MXRoyale is not >>>> compiled with it >>>> >>>> El mar., 28 jul. 2020 a las 11:56, Harbs (<[email protected]>) >>>> escribió: >>>> >>>>> Which initializer is needed? >>>>> >>>>> On Jul 28, 2020, at 12:29 PM, Carlos Rovira <[email protected]> >>>>> wrote: >>>>> >>>>> Hi Piotr, >>>>> >>>>> seems Joanne has problem in part due to MXRoyale not compiled with >>>>> >>>>> -js-default-initializers=true >>>>> >>>>> (getStaticConstantsByConvention :: the reflection target >>>>> mx.rpc.http.mxml.HTTPService was not Compiled with default >>>>> initializers enabled) >>>>> >>>>> Don't know if it is possible to add that to MXRoyale. What do you >>>>> think @Harbs <[email protected]> , @Yishay Weiss >>>>> <[email protected]> and others? >>>>> >>>>> @Joanne, if you are building from sources, can you try to add that >>>>> config to MRoyale library? >>>>> >>>>> thanks >>>>> >>>>> >>>>> >>>>> >>>>> El mar., 28 jul. 2020 a las 7:51, Piotr Zarzycki (< >>>>> [email protected]>) escribió: >>>>> >>>>>> Hi Joanne, >>>>>> >>>>>> Here is how we are sending POST with some parameters. [1] In that >>>>>> case parameter one parameter called "dominoXML" >>>>>> >>>>>> I hope it helps. >>>>>> >>>>>> [1] https://paste.apache.org/x22su >>>>>> >>>>>> Thanks, >>>>>> Piotr >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Tue, Jul 28, 2020, 7:28 AM SENEQUE CRAIG THIERRY < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi Carlos, >>>>>>> >>>>>>> I added the optional compiler parameters: >>>>>>> >>>>>>> -js-default-initializers=true >>>>>>> -js-dynamic-access-unknown-members=true >>>>>>> >>>>>>> But am still having the warning in console: >>>>>>> getStaticConstantsByConvention.js:52 [WARNING] >>>>>>> getStaticConstantsByConvention :: the reflection target >>>>>>> mx.rpc.http.mxml.HTTPService was not Compiled with default >>>>>>> initializers enabled >>>>>>> >>>>>>> And also my POST param is still blank on server request... >>>>>>> When using same request but in flex3 (by the way I am >>>>>>> re-writing the client side of an existing application >>>>>>> developed with flex and actionscript - with apache royale) >>>>>>> and I would like to re-use the existing server functions >>>>>>> (which is in PHP) - when the same request is called from >>>>>>> old flex application - the POST params are present... But >>>>>>> when called using HTTPService from apache royale - it is >>>>>>> blank :( >>>>>>> >>>>>>> Do you have an example using HTTPService with POST >>>>>>> parameters that work ? >>>>>>> >>>>>>> Thanks & Regards >>>>>>> Joanne >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Fri, 24 Jul 2020 10:20:28 +0200 >>>>>>> Carlos Rovira <[email protected]> wrote: >>>>>>> > Hi Joanne, >>>>>>> > >>>>>>> > "getStaticConstantsByConvention" problem use to be >>>>>>> >solved using the >>>>>>> > optional compilation parameter: >>>>>>> >*-js-default-initializers=true* >>>>>>> > >>>>>>> > (See this link: >>>>>>> > >>>>>>> https://apache.github.io/royale-docs/create-an-application/optimizations/compiler-configuration-settings.html#default-initializers >>>>>>> > ) >>>>>>> > >>>>>>> > In Royale by default the variables are not initialized >>>>>>> >unlike in Flash / >>>>>>> >Flex. >>>>>>> > Crux needs for some things that these variables are >>>>>>> >initialized. >>>>>>> > >>>>>>> > Also maybe you need to add >>>>>>> >-js-dynamic-access-unknown-members=true >>>>>>> > ( >>>>>>> > >>>>>>> https://apache.github.io/royale-docs/create-an-application/optimizations/compiler-configuration-settings.html#dynamic-access-unknown-members >>>>>>> > ) >>>>>>> > in case you are adding dynamic properties to plain >>>>>>> >objects >>>>>>> > >>>>>>> > HTH >>>>>>> > >>>>>>> > Carlos >>>>>>> > >>>>>>> > El vie., 24 jul. 2020 a las 10:05, Joanne Seneque >>>>>>> >(<[email protected]>) >>>>>>> > escribió: >>>>>>> > >>>>>>> >> Hi Carlos, >>>>>>> >> Thanks for the reply, I added traces to the code (client >>>>>>> >>+ server side) >>>>>>> >> and was able to debug up to the point where the message >>>>>>> >>is constructed & >>>>>>> >> sent to server (in >>>>>>> >>mx.rpc.http.AbstractOperation.prototype.sendBody ) >>>>>>> >> ---- >>>>>>> >> message.contentType = >>>>>>> >>"application/x-www-form-urlencoded" >>>>>>> >> message.method = "POST" >>>>>>> >> message.body = {loginMode: "1", pwd: "jbggAFxcXFx7", >>>>>>> >>scope: >>>>>>> >> "jbggAFdXV1fSpQ9e", username: "jbggAFhYWFgPvC96U1U="} >>>>>>> >> message.httpHeaders = {} >>>>>>> >> ---- >>>>>>> >> We can see that the "body" contains the object to be >>>>>>> >>sent to the PHP >>>>>>> >> service / request call... >>>>>>> >> But in my PHP log: >>>>>>> >> >>>>>>> >> 2020-07-24 11:45:04 +04:00 --- info: request method: >>>>>>> >>POST >>>>>>> >> 2020-07-24 11:45:04 +04:00 --- info: php input: >>>>>>> >> 2020-07-24 11:45:04 +04:00 --- info: user: >>>>>>> >> 2020-07-24 11:45:04 +04:00 --- info: pwd: >>>>>>> >> 2020-07-24 11:45:04 +04:00 --- info: scope: >>>>>>> >> 2020-07-24 11:45:05 +04:00 --- error: Login - Scope is >>>>>>> >>not valid. >>>>>>> >> 2020-07-24 11:45:05 +04:00 --- error: Login - Blank user >>>>>>> >>or password given >>>>>>> >> --------------------------- >>>>>>> >> >>>>>>> >> One thing I saw in the browser console is the following >>>>>>> >>warning: >>>>>>> >> [WARNING] getStaticConstantsByConvention :: the >>>>>>> >>reflection target >>>>>>> >> mx.rpc.http.mxml.HTTPService was not Compiled with >>>>>>> >>default initializers >>>>>>> >> enabled >>>>>>> >> org.apache.royale.reflection.utils.getStaticConstantsByConvention >>>>>>> >>@ >>>>>>> >> getStaticConstantsByConvention.js:52 >>>>>>> >> >>>>>>> org.apache.royale.crux.reflection.TypeDescriptor.fromTypeDefinition >>>>>>> >>@ >>>>>>> >> TypeDescriptor.js:194 >>>>>>> >> org.apache.royale.crux.reflection.TypeCache.getTypeDescriptor >>>>>>> >>@ >>>>>>> >> TypeCache.js:64 >>>>>>> >> org.apache.royale.crux.BeanFactory.constructBean @ >>>>>>> >>BeanFactory.js:577 >>>>>>> >> org.apache.royale.crux.BeanProvider.initializeBeans @ >>>>>>> >>BeanProvider.js:79 >>>>>>> >> org.apache.royale.crux.BeanProvider.initialize @ >>>>>>> >>BeanProvider.js:65 >>>>>>> >> org.apache.royale.crux.Crux.constructProviders @ >>>>>>> >>Crux.js:169 >>>>>>> >> org.apache.royale.crux.Crux.init @ Crux.js:145 >>>>>>> >> org.apache.royale.crux.Crux.set__strand @ Crux.js:233 >>>>>>> >> org.apache.royale.core.ElementWrapper.addBead @ >>>>>>> >>ElementWrapper.js:120 >>>>>>> >> org.apache.royale.core.HTMLElementWrapper.addBead @ >>>>>>> >> HTMLElementWrapper.js:50 >>>>>>> >> org.apache.royale.jewel.Application.start @ >>>>>>> >>Application.js:260 >>>>>>> >> (anonymous) @ (index):560 >>>>>>> >> >>>>>>> >> Could this be linked to my issue (i.e. POST content is >>>>>>> >>blank on PHP >>>>>>> >> server) ? >>>>>>> >> >>>>>>> >> Thanks & Regards >>>>>>> >> Joanne >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> >> On 2020/07/23 07:45:44, Carlos Rovira >>>>>>> >><[email protected]> wrote: >>>>>>> >> > Hi Joanne, >>>>>>> >> > >>>>>>> >> > Here's a working example that uses mx:HTTPService with >>>>>>> >>Crux [1], very >>>>>>> >> > similar to your code. >>>>>>> >> > >>>>>>> >> > can't see any issue in your code. Just ensure the >>>>>>> >>service is responding >>>>>>> >> > correctly and put some traces in the classes to detect >>>>>>> >>the point where it >>>>>>> >> > is failing. >>>>>>> >> > >>>>>>> >> > [1] >>>>>>> >> > >>>>>>> >> >>>>>>> https://github.com/codeoscopic/avant2-website/blob/master/avant2-products-companies/src/main/royale/com/codeoscopic/avant/config/Beans.mxml >>>>>>> >> > >>>>>>> >> > El jue., 23 jul. 2020 a las 8:48, SENEQUE CRAIG >>>>>>> >>THIERRY (< >>>>>>> >> > [email protected]>) escribió: >>>>>>> >> > >>>>>>> >> > > Hi, I am using an HTTPService to make a POST request >>>>>>> >>to a >>>>>>> >> > > PHP server - the issue I am having is that the POST >>>>>>> >> > > data/params is not retrieved on the server... >>>>>>> >> > > Below is my code in delegate file (I followed >>>>>>> >>examples >>>>>>> >> > > using 'crux'): >>>>>>> >> > > >>>>>>> >> > > Beans.mxml >>>>>>> >> > > >>>>>>> >> > > <crux:BeanProvider >>>>>>> >> > > xmlns:fx="http://ns.adobe.com/mxml/2009" >>>>>>> >> > > >>>>>>> >> xmlns:crux="library://ns.apache.org/royale/crux" >>>>>>> >> > > xmlns:mx="library://ns.apache.org/royale/mx" >>>>>>> >> > > xmlns:model="model.*" >>>>>>> >> > > xmlns:service="service.*" >>>>>>> >> > > xmlns:controller="controller.*"> >>>>>>> >> > > >>>>>>> >> > > <!-- services config --> >>>>>>> >> > > <mx:HTTPService id="loginService" >>>>>>> >>showBusyCursor="true"/> >>>>>>> >> > > >>>>>>> >> > > LoginDelegate.as >>>>>>> >> > > package service >>>>>>> >> > > { >>>>>>> >> > > import >>>>>>> >>org.apache.royale.events.IEventDispatcher; >>>>>>> >> > > import mx.rpc.AsyncToken; >>>>>>> >> > > import mx.rpc.http.HTTPService; >>>>>>> >> > > >>>>>>> >> > > /** >>>>>>> >> > > * @royalesupresspublicvarwarning >>>>>>> >> > > */ >>>>>>> >> > > public class LoginDelegate >>>>>>> >> > > { >>>>>>> >> > > >>>>>>> >> > > [Dispatcher] >>>>>>> >> > > public var >>>>>>> >>dispatcher:IEventDispatcher; >>>>>>> >> > > >>>>>>> >> > > [Inject('loginService')] >>>>>>> >> > > public var loginService:HTTPService; >>>>>>> >> > > >>>>>>> >> > > public function LoginDelegate() { >>>>>>> >> > > } >>>>>>> >> > > >>>>>>> >> > > public function >>>>>>> >>login(loginURL:String, >>>>>>> >> > > params:Object):AsyncToken { >>>>>>> >> > > loginService.method = >>>>>>> >>"POST"; >>>>>>> >> > > loginService.url = loginURL >>>>>>> >>+ 'login_web'; // >>>>>>> >> > > "login_URL" is for e.g. http://localhost/mySite/ >>>>>>> >> > > >>>>>>> >> > > >>>>>>> >> > > return >>>>>>> >>loginService.send(params); // "params" >>>>>>> >> is >>>>>>> >> > > an >>>>>>> >> > > object as {user: xxx:, pwd: 123} >>>>>>> >> > > } >>>>>>> >> > > } >>>>>>> >> > > } >>>>>>> >> > > >>>>>>> >> > > ------------ >>>>>>> >> > > >>>>>>> >> > > On my PHP server both the "$_POST" and >>>>>>> >> > > "file_get_contents('php://input')" returns blank... >>>>>>> >> > > >>>>>>> >> > > Did I miss something on the HTTPService ? Or is >>>>>>> >>there >>>>>>> >> > > another way to pass data through POST request ? >>>>>>> >> > > >>>>>>> >> > > >>>>>>> >> > > Thanks & Regards >>>>>>> >> > > >>>>>>> >> > > Joanne >>>>>>> >> > > >>>>>>> >> > >>>>>>> >> > >>>>>>> >> > -- >>>>>>> >> > Carlos Rovira >>>>>>> >> > http://about.me/carlosrovira >>>>>>> >> > >>>>>>> >> >>>>>>> > >>>>>>> > >>>>>>> > -- >>>>>>> > Carlos Rovira >>>>>>> > http://about.me/carlosrovira >>>>>>> >>>>>>> >>>>> >>>>> -- >>>>> Carlos Rovira >>>>> http://about.me/carlosrovira >>>>> >>>>> >>>>> >>>> >>>> -- >>>> Carlos Rovira >>>> http://about.me/carlosrovira >>>> >>>> >>>> >>> >>> -- >>> Carlos Rovira >>> http://about.me/carlosrovira >>> >>> > > -- > Carlos Rovira > http://about.me/carlosrovira > >
