One thing you should be aware of is that SOAP is not for objects. When you see people doing things involving new() and calling methods on the returned object, they are faking it with various annoying workarounds. That's just a limitation of SOAP, not a Java problem.