• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

ColdFusion 11, Update 12 breaks Flex remoting in some cases...

Contributor ,
May 15, 2017 May 15, 2017

Copy link to clipboard

Copied

I have an Adobe Flex app that I've written, and of course I occasionally need to call remote procedures on the server sometimes.  We use ColdFusion 11 on the server-side to handle these remote calls.

When I install Update #12 on ColdFusion 11, I get the following error when I make a remote call:
faultCode:Client.Message.Encoding faultString:'Creation validation for class 'flex.messaging.io.ObjectProxy' failed.' faultDetail:'null'

It only seems to happen when I send a complex data-type (like an Array of Objects) to the remote function.  It doesn't happen when I'm just sending strings.

Also, I'm using a secure channel when I make the remote call -- don't know if that might be the difference or not.

Please let me know if I can provide any further information to help track down the root of this issue.  I'm happy to provide any logs you might need, or whatever.  Just let me know.

Thanks,
Laurence MacNeill
Ball Ground, Georgia, USA

Views

2.8K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Contributor , Jan 18, 2018 Jan 18, 2018

I have discovered a work-around...

BTW, Update 13 still has this issue...

The issue only seems to occur if you pass an ArrayCollection from Flex to a function in a .CFC file on the ColdFusion server.

If you pass in an array of strings, for example, it doesn't happen.

If you pass in a complex object that is pre-defined in a CFC file ( a "value object") this issue doesn't occur.

Thus, if you stringify your ArrayCollection (via a JSON Serializer, which can be obtained from a 3rd party, found with a simp

...

Votes

Translate

Translate
Community Expert ,
Jan 18, 2018 Jan 18, 2018

Copy link to clipboard

Copied

Laurence (and others following along), since you say the problem happened with CF11 update 12 (and 13), let's look at things another way, which may help you find some better workaround (or perhaps a solution that Adobe can implement for you).

I notice that one of the major facets of update 12 was that it updated the underlying Tomcat to 7.0.75. You have been asserting that there is some "bug" in CF (and understandably so), but perhaps instead this is an issue not of a change in CF but rather a chance in Tomcat (and one that Adobe may not have noticed, as a) Flex and Flash Remoting are VERY much declining in use and b) you've not identified it's a very specific problem about arrays, and complex ones at that, and not defined in the CFC at that. Talk about a needle in a haystack.

But before we wonder, "ok, so what changed in Tomcat 7.0.75?", we should note that you said that it "worked' for you in CF 11 update 11.  And that was running on Tomcat 7.0.68 (as had been implemented by CF 11 Update 8). So it really would be a question of what could have changed in Tomcat 7.0.69 THROUGH 75, and there are several dozen things listed in the change log here:Apache Tomcat Changelog .


I looked for any mention of Array and found none that seemed compelling, but I will admit I did not look at each of the several dozen changes. Maybe you, Laurence, or someone from Adobe, may want to.

And I realize your next question may be, "well can I downgrade the Tomcat underlying CF to that older version, just to check?" The answer is, "no, you may not". Adobe builds CF atop Tomcat in a way that we can't just go changing the version underneath it. Could you get and implement your own Tomcat, and then implement CF as a WAR on that? Yes, but that's a stretch for someone who's never done it.

I will say that if you could create a small sample code that would demonstrate your problem, then perhaps someone running such a WAR-based CF deployment on an older Tomcat might be able to prove if it works (though they should prove first that it fails on the newer tomcat, the same way that you say CF does).

I realize this is not the "answer" you sought, but I offer it in case it may help you or help someone help you with what seems quite an edge case. 🙂 That doesn't diminish its importance to you, or your expectation that it should be solved, of course.


/Charlie (troubleshooter, carehart.org)

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Jan 18, 2018 Jan 18, 2018

Copy link to clipboard

Copied

Charlie:

I appreciate your ideas regarding Tomcat — you might be correct.

But since I found a work-around that has fixed the issue for me, I’m done looking for other solutions.  🙂

Hopefully others can utilize my work-around — or maybe they’ll have the time to research your Tomcat idea.

Flex is a dying language anyway — Adobe will be completely abandoning the Flash Player it relies upon in two years.  I just need to keep our Flex software working long enough to get everything re-written in Angular 2.  Then I’m done with Flex.  🙂

Thanks for your response.

L.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Jan 18, 2018 Jan 18, 2018

Copy link to clipboard

Copied

WolfShade:

Lucky you.  Knowing what I know now, I never would’ve developed anything in Flex.

I re-wrote all our in-house apps in Flex beginning back in 2008.  At the time it was the only thing that did what it did - a browser- and platform-independent development environment in which we could develop Rich Internet Applications (RIAs).  All you needed was a Flash Player and *boom*, you could run our software on your computer.  Easy peasy,

Then Apple pretty much banned Flash on all their devices, and everything went to hell.  HTML5, JavaScript, and CSS3 all got mature enough to write excellent RIAs with no browser-plugins.  Although there are still differences between browsers occasionally, you can pretty much use jQuery and avoid any differences between browsers.  Adobe read the writing on the wall and abandoned Flash Player and Flex.

So, yeah, I wish I had known 9 years ago that Flash Player would be killed off.  I never would’ve developed anything in Flex.  That’s an entire language that has become useless to me.  And I now have to re-write a lot of software.

I’ve chosen Angular 2 (which has since been upgraded to 4 and now 5) as our new language...  Hopefully Google won’t abandon it the way Adobe has abandoned Flex.  I don’t anticipate it will — Angular transpiles into plain JavaScript, HTML5, and CSS3, so it should be good.

But until everything is rewritten in Angular, I still have to keep our Flex-based stuff patched and working.  Fingers crossed that Adobe won’t break it any worse!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jan 18, 2018 Jan 18, 2018

Copy link to clipboard

Copied

I've been waiting for some resolution to this since last July. We do not compile our Flex source for the Flash player. Rather, ours is a desktop application which runs under the AIR platform in a closed network. We've been update-less since last summer, please don't tell the bad guys.

I agree with Charlie's line of reasoning (something 3rd party was updated, not intentional CF engine change by the CF team). But in addition to Tomcat, I would also check the other Java libraries that are more specific to the "native" RO calls handled by flex_gateway (like BlazeDS), and see if some version trial and error could be done there.

Al

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Dec 10, 2018 Dec 10, 2018

Copy link to clipboard

Copied

LATEST

If you're still looking, the <validators> "fix" is at Tracker  worked for us.

Peter

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Documentation