SOAP 请求中的 WSDL 日期输入总是为空,即使它不是

WSDL date input in SOAP request always gets null, even when it isn't

我正在尝试通过 soap 请求传递日期输入。但是,我总是特别为该字段获取一个空变量,而不是任何其他字段。 当我尝试将日期变量从日期更改为字符串时,我实际上收到了没有问题的变量。但是当我重试 Date 作为类型时,我重新创建了问题。请帮我找到我缺少的东西。 我将 JAX-WS 与 JDK 1.7、maven 3.2.3 一起使用。我在 glassfish 4.1 上运行应用程序 这是请求 class(为了 space 这里我省略了 getter 和 setter,但它们在那里很好!):

@XmlType(name = "ClientConsultationRequest", propOrder = {  "canal",
    "msisdn", "shDes", "dateOfSearch" , "nbrOfCycles" } )
public class ClientConsultationRequest extends BaseRequest {

@XmlElement(required=false, nillable = true)
private String canal;
@XmlElement(required = false, nillable = false)
private String msisdn;
@XmlElement(required = false, nillable = true)
private String shDes;
@XmlElement(required = false, nillable = false)
private Date dateOfSearch;
}

当我执行以下操作时:

Date dateOfSearch = consultationRequest.getDateOfSearch();

我得到以下信息:

dateOfSearch = null

即使我的 SOAP 请求包含:

        <!--Optional:-->
        <dateOfSearch>05/01/2015 22:00:00</dateOfSearch>

SOAP 支持的日期格式固定为 YYYY-MM-DD'T'HH:mm:ss.SSSZ。除此之外,所有其他格式都被视为空输入。