Вложенное исключение - com.fasterxml.jackson.databind.exc.MismatchedInputException: невозможно создать экземпляр `com.xyz.pqr.model.Date` - PullRequest
0 голосов
/ 18 декабря 2018

Ошибка:

Я сгенерировал 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>

1 Ответ

0 голосов
/ 20 декабря 2018

Исправлена ​​проблема с избавлением от всех зависимостей Джексона, которые я поставил выше.

...