Ошибка:
Я сгенерировал Java POJO из XSD, используя JAXB.Сейчас я пытаюсь использовать полезную нагрузку XML.Но я сталкиваюсь со следующим:
"Bad Request", "message": "Ошибка синтаксического анализа JSON: Невозможно создать экземпляр com.xyz.pqr.model.Date
(хотя существует хотя бы один создатель): no String-конструктор аргументов / метод фабрики для десериализации из значения String ('01 / 01/2012 '); вложенное исключение - com.fasterxml.jackson.databind.exc.MismatchedInputException: невозможно создать экземпляр com.xyz.pqr.model.Date
(хотя существует хотя бы один создатель): нет конструктора аргумента строки / метода фабрики для десериализации из значения String ('01 / 01/2012 ') \ n в [Source: (PushbackInputStream); строка: 1, столбец: 3419] (через цепочку ссылок: com.xyz.pqr.model.DATA [\ "residentAddress \"] -> com.xyz.pqr.model.Address [\ "fromDate \"]) "," путь ":" / receiveXML "}.
Контроллер:
@PostMapping(path="/receiveXML", consumes="application/xml")
public String receiveXml(@RequestBody DATA xml) {
return "XML Received";
}
Завиток:
curl -X POST --header "Content-Type:application/xml;charset=UTF-8" --data @soap_get.xml http://localhost:8080/receiveXML
Может кто-нибудь указать мне правильное направление?Нужно ли иметь какой-то файл привязки для анализа строки до даты?
Зависимости Джексона:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-parameter-names</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
Поле адреса внутри DATA @XMLRootElement открытый класс DATA
protected Address residentAddress;- У этого нет комментариев
Дата внутри класса адресов: @XmlElement (обязательно = true) защищено Дата от даты;
XSD:
<xs:complexType name="address">
\\
\\
<xs:element name="fromDate" type="date"/>
\\
\\
<xs:complexType name="address">
<xs:complexType name="date">
<xs:simpleContent>
<xs:extension base="dateBase">
<xs:attribute name="formatString">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="shortDate">
<xs:annotation>
<xs:documentation>equivalent of MM/dd/yyyy</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="MM/dd/yyyy"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>