Saturday, July 25, 2009
School Finder
Actual site
Currently works for a GA, FL, KS, KY, NY, NJ, NC, MA and CA.
I've used Public schools data from schooldatadirect.org site. Data is a couple of years old, but, still useful.
Comments and suggestions welcome!
Sunday, July 12, 2009
Amfphp and "Client.Error.DeliveryInDoubt" error
While working on a recent Flex application that uses amfphp remoting to get data back from the database, I came across the following error:
[RPC Fault faultString="Channel disconnected" faultCode="Client.Error.DeliveryInDoubt" faultDetail="Channel disconnected before an acknowledgement was received"]
After several hours of googling for the solution, couldn't find anything.
So, I just started changing the method signatures on my PHP functions and finally, I was able to get this thing to work.
The key is to change the php function to accept a parameter of "Object" type, i.e., an array of name-value pairs.
Intially my method signature looked like the following:
public function getSchools($districId, $zipCode) {
....
}
Then, I changed it to the following and every thing worked like a charm.
public function getSchools($args) {
$districId = $args['districId'];
$zipCode = $args['zipCode'];
....
}
It was tha simple.
I also had to change the Remote Object method call inside my Flex application from :
srv.getSchools(districId, zipCode);
To, the following:
var params:Object = new Object();
params.districId = String(districId);
params.zipCode = String(zipCode);
srv.getSchools(params);
I think you can fix similar errors in Zend Framework or WebOrb remoting also, although, I have tested those myself.
That was all. Happy Flexing.
[RPC Fault faultString="Channel disconnected" faultCode="Client.Error.DeliveryInDoubt" faultDetail="Channel disconnected before an acknowledgement was received"]
After several hours of googling for the solution, couldn't find anything.
So, I just started changing the method signatures on my PHP functions and finally, I was able to get this thing to work.
The key is to change the php function to accept a parameter of "Object" type, i.e., an array of name-value pairs.
Intially my method signature looked like the following:
public function getSchools($districId, $zipCode) {
....
}
Then, I changed it to the following and every thing worked like a charm.
public function getSchools($args) {
$districId = $args['districId'];
$zipCode = $args['zipCode'];
....
}
It was tha simple.
I also had to change the Remote Object method call inside my Flex application from :
srv.getSchools(districId, zipCode);
To, the following:
var params:Object = new Object();
params.districId = String(districId);
params.zipCode = String(zipCode);
srv.getSchools(params);
I think you can fix similar errors in Zend Framework or WebOrb remoting also, although, I have tested those myself.
That was all. Happy Flexing.
Labels:
actionscript,
amfphp,
flash,
Flex,
remoting,
weborb,
zend framework
Subscribe to:
Posts (Atom)