Paul, Have you set the logging level and checked the logs? It looks to me that when SOAPPart#getAsString returns null it will also log a message, and if that is not helpful, you get an execution trail that might be more enlightening. If it is not enlightening on its own, you could compare the log to one produced when running within Tomcat to see where the two diverge.
Scott Nichol