Saturday, April 25, 2009

AppEngine & Adobe BlazeDS (fix)


Hello,

Today I was able to get [ 'remoting only' ] BlazeDS (Community release 3.2.0.3978) to work on GAE, there seems to be an issue with current production GAE Servlet Container in which consequently causes BlazeDS class flex.messaging.io.amf.AbstractAmfInput.java when gets InputStream http request to throw an EOFException = (GAE 1339) resulting a context to resolve into MessageIOConstants.STATUS_NOTAMF in the flex.messaging.endpoints.amf.SerializationFilter class.
Here's my un-official 'fix' to the issue (which just worked for me this morning):

So couple things:

[1] First make sure config file services-config.xml has
false

, so it's not JMX managed (restricted by GAE)



false

false





[2] And Second: on BlazeDS source look for
flex.messaging.io.amf.AbstractAmfInput.java and replace line #58 (aprox)

this.in = new DataInputStream( in );
for
this.in = new DataInputStream( new java.io.BufferedInputStream( in ) );

So it would look as:


public abstract class AbstractAmfInput extends AmfIO implements ActionMessageInput
{
protected BeanProxy beanProxy = new BeanProxy();

protected DataInputStream in = null;

public AbstractAmfInput(SerializationContext context)
{
super(context);
}

public void setInputStream(InputStream in)
{
this.in = new DataInputStream( new BufferedInputStream( in ) );
}

... more


run BlazeDS ant build.xml in the following targets order : clean,sdk,common,core and replace the flex-messaging-core.jar into your application WEB-INF/lib folder, and deploy new war to GAE cloud.

The one I deployed also contains Spring (3.0.0.M2) and http://www.springsource.org/spring-flex(1.0.0.RC1)

Here's a demo app to demonstrate that it works:
(Note: Flex app is a proof of concept for demonstration purpose)

http://riaspringblaze.appspot.com

For those of you interested in compiled flex-messaging-core.jar drop a request in this blog's comments and I'll send it asap (do not send to my email directly, thanks).

Note: this is an unofficial community effort, so it is delivered 'as is' for you to experiment with ;-)

Update on 4/28/09, Another issue dealing with server sessions on messaging flex.messaging.endpoints.BaseHTTPEndpoint class detects a REQUEST_ATTR_DUPLICATE_SESSION_FLAG and throws "flex.messaging.request.DuplicateSessionDetected", it'd be nice if one could add to config file a no session management parameter. So for now on [line# 405 aprox] flex.messaging.endpoints.BaseHTTPEndpoint class I basically removed the duplicateSessionDetected check (temporarily) till this matures a bit more.
Which by the way on deployment [appengine-web.xml] descriptor you'll need:

true

Update on 09/28/2009: http://bugs.adobe.com/jira/browse/BLZ-444

I've received lots of emails asking me what libraries I'm packing under /WEB-INF/lib from G-sdk along with all other 3rd party dependencies, here's the list I have in my war (you may need more or less depending on what your app does):

martin@martin-ubuntu9 ~/projs/blazeappengine/war/WEB-INF/lib
$ ls -1
antlr-3.0.1.jar
aopalliance.jar
appengine-api-1.0-sdk-1.2.0.jar
asm-3.1.jar
aspectjrt.jar
backport-util-concurrent.jar
cfgatewayadapter.jar
cglib-2.2.jar
commons-beanutils.jar
commons-collections-3.1.jar
commons-fileupload-1.2.1.jar
commons-lang.jar
commons-logging-1.1.jar
concurrent.jar
datanucleus-appengine-1.0.0.final.jar
datanucleus-core-1.1.0.jar
datanucleus-jpa-1.1.0.jar
flex-messaging-common.jar
flex-messaging-core.jar
flex-messaging-opt.jar
flex-messaging-proxy.jar
flex-messaging-remoting.jar
geronimo-jpa_3.0_spec-1.1.1.jar
geronimo-jta_1.1_spec-1.1.1.jar
jackson-core-asl-0.9.9-6.jar
jdo2-api-2.3-SNAPSHOT.jar
org.springframework.aop-3.0.0.M2.jar
org.springframework.aspects-3.0.0.M2.jar
org.springframework.beans-3.0.0.M2.jar
org.springframework.context-3.0.0.M2.jar
org.springframework.context.support-3.0.0.M2.jar
org.springframework.core-3.0.0.M2.jar
org.springframework.expression-3.0.0.M2.jar
org.springframework.flex-1.0.0.RC1.jar
org.springframework.transaction-3.0.0.M2.jar
org.springframework.web-3.0.0.M2.jar
org.springframework.web.servlet-3.0.0.M2.jar
xalan.jar
Let me know how it goes.....
Also, I'd appreciate comments/feed-back/critiques on my blog as well so we can all share experiences / discoveries, thanks.
Cheers!

83 comments:

Roger said...

this is awesome! any chance you'll release the source of your app?

Cornel said...

Hi Martin,

I receive an error (sometimes it works) "[RPC Fault faultString="Detected duplicate HTTP-based FlexSessions, generally due to the remote host disabling session cookies. Session cookies must be enabled to manage the client connection
correctly." faultCode="Server.Processing.DuplicateSessionDetected" faultDetail="null"]
".

I've tried myself to port it and I'm also stuck with this error. I'll let you know the progress (if I'll have time to work on it)

Dtorn Tarai said...

Cornel,

I had this same error when using BlazeDS in a load balanced environment.

My problem was that the server already contains a session for the flex client but the flex client made a call back with a different session ID. In my case the different session ID was being picked up when the flex client hit a different server in the cluster.

This bit of code was introduced to avoid flex clients from creating new sessions on each call. This is also required for messaging but is now enforced for AMF too.

My fix was to use sticky sessions so that the flex client wouldn't roam between servers. After this I ran more load tests and the error never came up again.

Not sure how GAE works but I suspect if there is any way to use sticky sessions then that will likely fix it.

It is good to see others looking into GAE and BlazeDS because I would eventually like to try it too!

Lance

Dtorn Tarai said...

After a quick search I came up with the following:

Another missing piece of GAE is "sticky sessions", replicated sessions are fine for classic page based applications, but in a world of AJAX applications with more and more state in the server, replicated sessions are problematic.

If it helps at all I could dig through the code and point you to the spot where BlazeDS is doing this check. It may be required to remove this to get it to work properly on GAE.

Lance

Martin Z. said...

Roger, send me your email and I'll be glad to email you source.

Cornel, I've seen that error sometimes, I understand GAE servlet container has bugs and issues, let me know your discoveries and keep me in the loop.

Dtorn, thanks for sharing, and let me know how your experiences is as well.

Regards.

Martin Z. said...

Cornel, I just looked into appengine-web.xml deployment descriptor and I forgot to mention that you need
[sessions-enabled]true[/sessions-enabled] for BlazeDS to work, this error is reproduceable if you run app in a tab, close tab and reopen a new tab and run app once again => "Server.Processing.DuplicateSessionDetected",
which in this case is ok because browser instance sends same session_id.
James Ward informed today that the messaging part has issues due to GAE session management bugs.
So it'll mature with time.
As for now if you try to close browser and relaunch it, it'll work.
Dtorn is correct, Blaze code may need an adaptor for memcache since it is the way Google handles sessions across nodes.
I'm sure more stuff will surface, you know G is getting free QA from us right ;-)

Martin Z. said...

Cornel & Dtorn:
Update on 4/28/09, server sessions on messaging
flex.messaging.endpoints.BaseHTTPEndpoint class detects a
REQUEST_ATTR_DUPLICATE_SESSION_FLAG and throws "flex.messaging.request.DuplicateSessionDetected", this issue will come to light as GAE servlet container matures on handling sessions 'cookies' across nodes and multiple same sessions from same client, as for now I'd like BlazeDS to be almost stateless as far as sessions on server side, perhaps one could add to config file a
no session management parameter. So for now on [line# 405 aprox] flex.messaging.endpoints.BaseHTTPEndpoint class I basically removed the duplicateSessionDetected (temporarily) till this matures a bit more.
Which by the way on deployment [appengine-web.xml] descriptor you'll need:[sessions-enabled]true[/sessions-enabled]
Stay tuned! more fun stuff to come!
Cheers!

Cornel Creanga said...

Yes, it should be a good idea if you plan to only use remoting, however I'm not sure if messaging will work (I think not..). Yes, I also think that some things should be rewritten with memcache.

For the moment I have to put BlazeDs in the waiting queue :) , I'll keep you in touch when I'll start again.

Roger said...

Hi Martin, if you can send the source code to rsmaniak@gmail.com i'll really appreciate it.

Thanks!

linbin said...

Hi, maitin,

I'm very interested with flex and GAE, I will really appreciate that if you can send me the source code and the fixed flex-messaging-core.jar file.
My email address: linbin.hz@gmail.com
Thanks.

Ron said...

Hey Martin,

This is great work! I am also very interested in getting a GAE/J & AMF remoting/messaging solution. I have been looking around and have considered WebORB and Granite DS. Both seem to have been working on patches for GAE. Do you have any thought or experience with either?

Thanks,
Ron

Cole said...

FYI, don't set logging to debug or your app will not work.

[target class="flex.messaging.log.ConsoleTarget" level="Info"]

If you look at flex.messaging.MessageBroker.class

Line number 326 to 341. when you set the logging level to debug..
which is very handy, it trys to access the class loader.

for GAE this whole section needs to never be executed.

Cole said...

It looks like it is pretty easy to get security working on the end points.

I am working on a much cleaner class to use then the provided because
it doesn't quite make sense for what some of it is doing...

For now:

set your login command to: ( i am planning on building a custom login
command that caters to google's runtime/authentication scheme)

[login-command class="flex.messaging.security.TomcatLoginCommand" server="all"/]

then add the following two security-contraints:

[security-constraint id="authenticated"]
[auth-method]Custom[/auth-method]
[roles]
[role]*[/role]
[/roles]
[/security-constraint]

[security-constraint id="admin"]
[auth-method]Custom[/auth-method]
[roles]
[role]admin[/role]
[/roles]
[/security-constraint]


this will allow you to have three types of endpoints..

1) things that don't require any authentication
2) things that require a person to be authenticated.
3) thigns that require a person to be an admin account..


take a look at:
http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=services_security_3.html
for how to configure your destination... but...

if you add something like:
[security]
[security-constraint ref="admin"/]
[/security]
to the destination tag of remoting-config.xml

fo when you try to connect to the end point... you'll get of the
following responses.

1) if you have more permissions then required, it will work.
2) if your authenticated but it requires admin access you will get a
fault of "Access denied. User not authorized."
3) if your not authenticated but need to be... "Login required before
authorization can proceed." will be the fault..

people should really look at doing this so that they don't expose
methods that someone could use to hack your site..

for this to work.. you should authenticate your browser with google
before launching the flex app.. i am working on a way to be able to
authenticate inside the app once its been loaded if a user wants to
escalate their privileges.

Martin Zoldano said...

Please make demo source to requests in the comments with you email like this so I can keep track of follow-ups and feed-back, thanks much!:

Hi Martin,

I have seen you work on BlazeDS and Google App Engine. I think it is great that you are finding ways to make them work together. If you could please send me the code when you a chance, I would really appreciate it.

Thanks,
Ron
ron.fulkerson@gmail.com

Martin Zoldano said...

Hello Ron!

I've only experimented with BlazeDS, I'm sure the other products are good as well however I do not know much about them, anybody else has had experience with these products?

http://graniteds.blogspot.com
http://www.themidnightcoders.com/blog

cheers!

Martin Zoldano said...

Hello Cole!

Thanks for sharing your experiences, I was going to try to tackle the security part this weekend with:
http://static.springsource.org/spring-security/site/index.html

Also I found this ref @

http://refcardz.dzone.com/refcardz/flex-spring-integration

Cheers.

Murat Yener said...

Hi, Martin this looks pretty interesting, may i request the source code?
yenerm@msn.com

Leo said...

Hi Martin, could you send me the flex-messaging-core.jar patched jar?

Thanks a lot!
leomena@gmail.com

mianor said...

Hi Martin, great work! Could you please send me the source code?
mianor64@gmail.com

garry said...

Please send me a copy of the code. garry@dynafocus.com

Thanks

AlexC said...

just found this blog, fantastic! I'm just tipping my toes into Flex on GAE. Can you send me the source code as well please (think it would certainly save a lot of head scratching).
Tks,
Alex
email : swissalex90@hotmail.com

Martin Zoldano said...

Hello!
I've been wanting to place recompiled binary core jar so anyone can download easily, perhaps it's a smart move to let G mature its PaaS product, this small blaze-hack is enough to get you going for now....things will stabilize....in the meantime for those of you interested please keep placing requests here, I'll try to respond quickly!, thx.

--------------------------
Thanks very very much,

I've actually built a server side app which offers a web service interface, so as soon as GAE came out and I saw I couldn't use web services, I kinda panicked before thinking about using BlazeDS.
So I'm hoping it won't be too difficult to try and deploy it on GAE as a BlazeDS app so I can hopefully use remoting straight into my java classes (ie no real changes needed on my server-side). I actually didn't know you could deploy the BlazeDS jars within an application, I thought you had to have the blazeds.war deployed pretty much as a separate app on the server so that any other server side apps I deploy could use it. However reading you blog, I'm hoping I can just include some of the blaze jars and then it'll work.

As for your code being only test / play stuff - that's fine - anything which offers any tips is what I'm looking for.

As for your blog .... more of the same please :-) Really interested in deploying any java server-side stuff to GAE (especially since I'm using Flex for my front-end).

Thanks again and I'll let you know how this goes.

Regards
Alex

Modulo Fivera said...

Would love to see the code.
cyrusamiri@gmail.com

john said...

Hi Martin, could you send me the flex-messaging-core.jar

Thanks
chmywoo@gmail.com

john said...

Hi Martin:
It works!
1.Get flex-messaging-core.jar from Martin
2.Download the BlazeDS Turnkey,
unzip it,
go to \tomcat\webapps\blazeds\WEB-INF,
open web.xml copy something you need to GAE project web.xml.
copy \flex, \lib to GAE project \war\WEB-INF,
replace flex-messaging-core.jar
3.add <manageable>false</manageable> to
services-config.xml
4.add <sessions-enabled>true</sessions-enabled> to
appengine-web.xml
5.add
<destination id="your id">
<properties>
<source>your class</source>
</properties>
&lt/destination>
to remoting-config.xml
6.edit
<endpoint url="http://your project id.appspot.com/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
in services-config.xml
7.do something in Flex
<mx:RemoteObject id="ro" destination="your id"
result="resultHandler(event)" fault="faultHandler(event)" endpoint="http://your project id.appspot.com/messagebroker/amf"/>

Martin Zoldano said...

Thanks for cole@coleferrier.com for finding this:
flex.messaging.MessageBroker line number 326 to 341 has
issues trying to detect the ctx classloader.

GarthDB said...

Martin. I'd love to see the source for the project.

Thanks for the work.

BA said...

AHi Martin,

I have seen you work on BlazeDS and Google App Engine. I think it is great that you are finding ways to make them work together. If you could please send me the code when you a chance, I would really appreciate it.

Thanks,
BA
andrew@bapkag.com

Chris Harmoney said...

Martin,
I would greatly appreciate it if I could get a copy of your source & updated flex-messaging-core.jar

Thanks!
nipoez {a|t} hotmail.com

Eddie said...

Hi Martin,

Please send a copy of the source & flex-messaging-core.jar to wantknowledge@gmail.com. Your assistance is greatly appreciated. Thanks!

- Eddie

Murat Yener said...

Great! Martin thanks for the jar and your contribution without it would take ages to make everything work! Also thanks for the tip about the dev and production environment differences..
I included your jar in the latest post at javalobby too.

ToddRooke said...

Please send me a copy of the code.

toddrooke@gmail.com

Thanks.

Ivan said...

Hi Martin can I get a copy of your jar file. Thanks.
ivan[dot]ramirez[at]gmail[dot]com

Anonymous said...

Hi Martin,
Can I get a copy of that flex-messaging-core.jar and source of you proj?

gavaran@hotmail.com
Anand

Anonymous said...

martin-

can you send me the update flex-messaging-core.jar?

thanks!

cfregly at gmail

Anonymous said...

please send me a source code copy
to jane00224055[AT]sohu.com,thanks very much

震 said...

i rebuild the core.jar and deployed on GAE.
at local it works fine,but on GAE

[RPC Fault faultString="Detected duplicate HTTP-based FlexSessions, generally due to the remote host disabling session cookies. Session cookies must be enabled to manage the client connection correctly." faultCode="Server.Processing.DuplicateSessionDetected" faultDetail="null"]

my app throughs another error above
but when i call the method again and again, it works fine sometimes.

震 said...

when I set the sessions-enable as "false", error above been throughed out
[RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 500: url: 'http://bao-tao.appspot.com/messagebroker/amf'"]

Martin Zoldano said...

震 There was an update on blog:4/28/09, server sessions on messaging flex.messaging.endpoints.BaseHTTPEndpoint class detects a
REQUEST_ATTR_DUPLICATE_SESSION_FLAG and throws "flex.messaging.request.DuplicateSessionDetected", visit [line# 405 aprox] -> flex.messaging.endpoints.BaseHTTPEndpoint , (you could) basically treat|remove the duplicateSessionDetected throw.
And [appengine-web.xml] descriptor needs:[sessions-enabled]true[/sessions-enabled]

Dennis said...

Hi Martin

can you send me the update flex-messaging-core.jar or the source code?

thanks you very much.

ddn488@gmail

Devaraj said...

Hi Martin

can you send me the update flex-messaging-core.jar or the source code?

thanks you very much.

nsdevaraj@gmail

To kill a MockingBird said...

Hi Martin,
Even i am facing the same issue of "[RPC Fault faultString="Detected duplicate HTTP-based FlexSessions, generally due to the remote host disabling session cookies. Session cookies must be enabled to manage the client connection
correctly." faultCode="Server.Processing.DuplicateSessionDetected" faultDetail="null"]

could you send me the flex-messaging-core.jar patched jar, and any other configurations needed?

f2001383@gmail.com

Michael said...

Martin,

Do you mind send me the whole source in a jar or zip file ?

My email is: pengw@yahoo.com, thanks

Christian said...

Hi Martin,

could you send me the flex-messaging-core.jar patched jar, too?

mail address: schafm@upb.de

thanks alot!

KarlDettmann said...

Hi Martin,

Can you send me the fixed flex-messaging-core.jar too?

mail address: karl@karlsplace.com

Thanks!

Ian McDonald said...

Hi Martin,
That's great - could you send me the jar file?

Many thanks,
Ian

ian at theplateau.com

Weirdo said...

Martin, great job on the workaround. Could you send me the source please? amirali1985@gmail.com

Amir said...

And if you can send me the fixed jar file also, I'd be most appreciative.

Pav Garret said...

Please send me a source code copy
to garret-work@ya.ru, thanks very much.

Anonymous said...

Please send me a copy of the fixed JAR to agsmancusi@gmail.com

Thanks

anniyanvr said...

Hi, martin,

I'm very interested with flex and GAE, I will really appreciate that if you can send me the source code and the fixed flex-messaging-core.jar file.
My email address: anniyanvr@gmail.com
Thanks.

finelinestudio said...

Has this been submitted to the BlazeDS open source?

Dishman said...

Hi Martin, could u please send me the flex-messaging-core.jar file. Im having a problem when i try two simultaneaous calls to two remote procedures. I get a doubt something is happening when the calls are batched. May be i did not compile it correctly. My email id is nishadmusthafa@gmail.com.

Dishman said...

Hi Martin,
Im getting the following error when im making a call to a particular exposed destination

here was an unhandled failure on the server. tried to access method flex.messaging.log.Log.getTargetLevel()S from class flex.messaging.MessageException

Could u tell me what the problem might be.

Martin Zoldano said...

are u setting level to DEBUG, try INFO instead, see why below, hope this helps:

[target class="flex.messaging.log.ConsoleTarget" level="Info"]
Class flex.messaging.MessageBroker
line number 326 to 341 tries to build StringBuffer with ctx CL faulting on GAE.

Dishman said...

Hi Martin,
Thanks. After making those changes in the services-config.xml file, it worked fine. After that i got another error.
"There was an unhandled failure on the server. java.lang.ExceptionInInitializerError"
when i called a particular remoting destination. So I used the stacktrace to figure out that the problem occured because one of the google appengine jars had two versions and it was detected as a duplicate. Once i removed the earlier version, it worked fine.

Cheng said...

Hi martin,

Very interested with flex to combine with GAE, I will really appreciate that if you can send me the source code and the fixed flex-messaging-core.jar file.
My email address: tsing.cheng@gmail.com
Thanks a lot!

Dinesh said...

Hi Martin,

I am also faceing the same issue of "Detected duplicate HTTP-based FlexSessions"

Can I get a copy of that flex-messaging-core.jar and source of you proj?

dinesh.s.kulkarni@gmail.com

Dinesh

Cheng said...

Hi Martin,

Thank you for your jar.

And, I come to a error when send message to server:

[FaultEvent fault=[RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 500: url: 'http://hqloverr.appspot.com/messagebroker/amf'"] messageId="68358D32-99D9-6ED2-B4F2-7EC74C45884B" type="fault" bubbles=false cancelable=true eventPhase=2]


Can you help me, and I request your application source code?

Thanks!

tsing.cheng@gmail.com

THE LNe said...

Hi Martin,

Can I get a copy of that flex-messaging-core.jar

nirmel_m@hotmail.com

Nirmel

Ferhad said...

Hi,
can you send me your project and flex-messaging-core?
hellomyman@gmail.com

Thanks a lot.

Cedseat said...

Hi Martin,
can you send me your project and flex-messaging-core?
cedseat@free.fr

Thanks.

Anonymous said...

Can I get demo source to check it out?

Cheers,
Jay ( bighead007us @ gmail dot com)

Amit said...

Hi Martin,

I am not using BlazeDS messaging (only using Remoting service). There could be multiple webservers hosting the application and load balancer in front (which is not sticky). Application does not rely on FlexSession on server side.

Do you know if it is safe to use BlazeDS in this configuration OR your fix would be required (which I understand is related to messaging).

Thanks,
Amit Arya

Martin Zoldano said...

Amit, this little fix is specific for GAE PaaS only, read the post. Cheers

RS said...

FYI, I have an enhancement request in with Adobe to allow use of remote objects in a multi-node environment without requiring sticky sessions, http://bugs.adobe.com/jira/browse/BLZ-443. The code change suggested in this blog is basically the primary workaround at this point.

Manu Dhanda said...

Martin,
I tried playing with graniteDS & GAE. It worked well. Now I want to try with BlazeDS with GAE.

Would appreciate if I could get a copy of your source & updated flex-messaging-core.jar

Thanks
manuraj.dhanda@gmail.com

Martin Zoldano said...

BlazeDS + load balancer: (follow-up)

Thread:
http://forums.adobe.com/message/2262569#2262569

From RodS42:
http://bugs.adobe.com/jira/browse/BLZ-443

As presumed for ver 3.2 change from 3.0:
(Adobe: Alex Glosband) BlazeDS Requires HTTP Session? for both remoting :( and messaging:
"The RemotingService uses the BlazeDS messaging system which requires session affinity. All the services (RemotingService, MessageService, etc.) communicate with the server over a channel. The channel needs to be able to talk back to the same server for things like Pub/Sub messaging to work. I see the point that session affinity shouldn't be required for remoting requests that are stateless, but in BlazeDS a number of services can share the same underlying channel so not requiring session affinity could break other services."

Martin Zoldano said...

http://bugs.adobe.com/jira/browse/BLZ-444

Erik Ostermueller said...

Great work, Martin.
Could you send me a copy of your source & updated flex-messaging-core.jar?

FWIW, I'm interested in pub/sub functionality.

Thanks,
eostermueller@gmail.com

Erik Ostermueller said...

Goggle App Engine support for BlazeDS was just 'deferred', according the the project Jira.

Be sure to take a second to 'Vote' for the issue here:

http://bugs.adobe.com/jira/browse/BLZ-444

Martin Zoldano said...

Thanks Erik

I already voted +1 :)

parabol ink richie said...

Hey Martin,

Nice work getting this little baby working. I am also trying to BlazeDS up and running and would really appreciate if you could send me the source code for this. My email address is RichardNHeck@gmail.com

Cheers
Richie

David said...

I'd looking to give Flex a go on the GAE as well. Would you mind sending me the source too? Thanks!

aberrant80 at gmail

Daniel F. M. said...

Hi Martin, if you can send the source code to danielmenezes at gmail.com i'll really appreciate it.

Thank you!

Serdar said...

Hi Martin, Nice blog. Can you send me the source. Thabnks.
Serdar Badem

serdar.badem@gmail.com

Guru said...

Hi Martin,

Im trying to use Springs + BlazeDS + GWA. It works fine locally in eclipse(with plugin of GWA and flex), but gives following error on cloud:

faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Failed: url: 'http://shareandhelp.appspot.com/samples/spring/messagebroker/amf'"]

Please send me the code example using all what Im trying to use.
Thankyou alot for your post....

Gurvinder
gurvinder_777@yahoo.co.in

markpenrose said...

Hi Martin,

Nice work. I would like to get your code and jar files.

Thanks,
Mark
markbpenrose@gmail.com

Ragini said...

Hi All,

I am getting "Detected duplicate HTTP-based flex-sessions, generally due to the remote host disabling session cookies.Session cookies must be enabled" when I delete the browser cookies and run the application.

Awaiting for prompt reply!!
Thanks in advance!

Ragini said...
This post has been removed by the author.
Martin Zoldano said...

Ragini
Read the blog post :-) , give me your email I'll send core jar to you.
m

Ragini said...

Hi Martin,
Thanks for reply !

I will explain you my problem first :

I am using Flex,blazeDS(3.2.0.3978) and Java and not GAE(I am unknown to GAE. When I run my application normally its working fine,but when I delete the browser cookies in between then I got the Error for first server call:

" RPC Fault faultString="Detected duplicate HTTP-based FlexSessions, generally due to the remote host disabling session cookies. Session cookies must be enabled to manage the client connection
correctly." faultCode="Server.Processing.DuplicateSessionDetected" faultDetail="null"

then for second server call I got session expired exception(which is ok)

Please reply! I am new to Flex!

Thanks and Regards,
Ragini (ragini.3@gmail.com)

Martin Zoldano said...

http://forums.adobe.com/message/2262569
http://bugs.adobe.com/jira/browse/BLZ-443