RESTful Java Web Services must not return void to iPhone HTTP Services

17 Feb 2009

After many sessions of debugging and even memory inspection not yielding fruit, I've finally discovered what caused my previous RESTful demo apps to have sporadic behavior, in addition to the memory leak of the synchronous call.

Today's problem solving summary:

  1. XCode projects cannot have commas anywhere in the path up to the location where they are stored or else you'll get an error message of:
    ld: -filelist file not found: <Project Path>

  2. All RESTful web services called via the NSURLConnection APIs must return a non-null payload.

    This bit me because my "Add Contestant" function was adding the contestant and returning void. I now return a string of "Success" to satisfy this requirement. The observable failure is very quiet, which made it so hard to debug; every other web service call appears valid, but never actually makes a call across the wire. This was proven via TCPDump. All the web service call callbacks are properly called in the Objective C side of the program. It just silently failed and passed back a null payload in the response data structure.

All the code for this project is available on GitHub and will be updated with the results of the adjustments based on the above findings by tomorrow.