Using the following will treat a null as a nil when marshalled
@XmlElement(nillable = true)
protected String userMessage;
If the WSDL/XSD has the element defind as nillable, then code generation will generate the following
protected JaxbElement<String> userMessage;
I can tell from your javadoc that the code generated is not what you are using today. If you are hitting against another's webservice I suggest generating the correct dto objects from their wsdl. You can look at documentation for xjc.exe and wsdl.exe that are found in your jdk/bin directory.