Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I debug AMF (BlazeDS) serialization of Java objects to Actionscript?

I'm using BlazeDS to remote some Java objects that I'm consuming in a Flex application. I'm getting a type coercion error with one of my classes that I can't for the life of me figure out. I have other classes that are working fine using the same data types, and I've gone over my mapping a dozen times. I'm following all of the necessary conventions for getters and setters as far as I know...

Anyhow, my question is: how can I debug this problem? Running the Flex app in debug mode spits out some generic errors to the console that don't really help much (TypeError: Error #1034: Type Coercion failed: cannot convert Object@5d1d809 to valueObjects.SomeClass.).

I'm new to this whole AMF / Flex + Java thing, so any tips would be greatly appreciated.

like image 979
Boden Avatar asked Jun 11 '09 06:06

Boden


2 Answers

These are two of the tools I use when working with BlazeDS, AMF, etc.:

  • Use an HTTP proxy tool that shows the calls between your client and server, like Charles

Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).

  • Turn on the logging for BlazeDS. Within WEB-INF/conf/services-conf.xml, lower the debugging level to 'debug' like in the below snippit. The output, which is fairly detailed, will appear in {tomcat-home}/logs/localhost.yyyy-mm-dd.log

    <target class="flex.messaging.log.ConsoleTarget" level="debug">

like image 116
Stu Thompson Avatar answered Oct 29 '22 10:10

Stu Thompson


The easiest way to check on the communication between service-clients AMF messages is to use FireFox, install FireBug extension and add the AMF Explorer. You can see the structured requests and responses.

like image 4
FidelGonzo Avatar answered Oct 29 '22 11:10

FidelGonzo