У меня есть WSDL следующим образом:
< xsd:simpleType name="USER_ACT_STRDT_TypeDef">
< xsd:annotation>
< xsd:documentation>USER_ACT_STRDT is a date.< /xsd:documentation>
< /xsd:annotation>
< xsd:restriction base="xsd:date">
< xsd:pattern value="(\d{4}-\d{2}-\d{2})"/>
< /xsd:restriction>
< /xsd:simpleType>
Когда я генерирую STUB (используя Axis2 1.5.3), сгенерированная заглушка (привязка данных ADB) имеет следующий исходный код:
public void setUSER_ACT_STRDT_TypeDef(Date param) {
if (ConverterUtil.convertToString(param).matches("\d{4}-\d{2}-\d{2}")) {
this.localUSER_ACT_STRDT_TypeDef=param; } else { throw new java.lang.RuntimeException();
} }
Этот метод всегда генерирует исключение RuntimeException, поскольку метод ConverterUtil.convertToString() возвращает строку в формате, отличном от "гггг-мм-дд". Он возвращает дату, добавляя +5.30 как 2011-03-21+05:30.
Я пытался передать дату в разных форматах, но результат был одинаковым для всех.
Может кто подскажет как решить эту проблему.