The most recent article (SOA Without SOAP) makes a case that SOAP on J2ME could actually be a dead end:
SOAP's dependence on XML is also a disadvantage, however. While it's true that the Web Services APIs for Java ME (WSA) support a subset of the SOAP 1.1 standard and a simple API for parsing XML, WSA support is far from widespread. ... The pragmatic Java ME developer understands this, which is why alternative approaches must often be explored. And even if SOAP was universally supported on Java ME platforms, some developers would look for different solutions because of the extra overhead involved in using SOAP. ... In other words, services are invoked using the HTTP GET and POST methods, with any input data passed in using query parameters (for GET requests) or the request body (for POST requests) ... If data security is a concern, use code from the Bouncy Castle Crytographic APIs-an open source cryptography project-to encrypt the communication, as described in Data Encryption for J2ME Profiles.
It is already apparent that the emulator environment is more forgiving than the Nokia N91 over the wireless network.
I am assuming that you are actually receiving an (error) HTTP Response Code: HTTP/1.1 411 Length Required.
This suggests to me that successful transmission of a J2ME client HTTP request over the wireless network requires a valid Content-Length header in the request (even though HTTP/1.1 doesn't require it (RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1; 4.4 Message Length). To be compatible with HTTP/1.0 Content-Length should be included anyway).