Джексон fastxml UnrecognizedPropertyException происходит случайно - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть класс, аннотированный @JsonAlias ​​и @JsonProperty, чтобы разрешить сопоставление атрибутов snake_case с атрибутами camelCase. Пример:

@JsonAlias({ "pedidoDevolucion", "pedido_devolucion" })
@JsonProperty(value = "pedido_devolucion", required = false)
private Boolean pedidoDevolucion;

Проблема заключается в том, что иногда этот код работает отлично, когда он пытается отобразить атрибут «pedido_devolucion» из атрибута JSON в «pedidoDevolucion» в Java-объекте, а в некоторых других случаях происходит сбой при выдаче:

Причина: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: нераспознанное поле "pedido_devolucion"

Код, который делает сопоставление:

import org.jboss.resteasy.client.ClientResponse;

public static <DtoT> DtoT getDTO(ClientResponse clientResponse, Class<DtoT> claseDto)
        throws Exception {

    DtoT response = null;

    if (clientResponse.getStatus() == ClientResponse.Status.OK.getStatusCode()) {

        response = claseDto.cast(clientResponse.getEntity(claseDto)); // this one

Я знаю, что иногда у Джексона возникают проблемы с зависимостями, особенно когда они смешаны с зависимостью org.codehaus, но в моем случае я использую одну из rapidxml для всего моего проекта. Связанные с Джексоном зависимости от моего помпона:

<dependency>
    <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-jaxb-annotations</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.jaxrs</groupId>
        <artifactId>jackson-jaxrs-json-provider</artifactId>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
</dependency>

У меня также есть jboss-deploy-structure.xml, где я определяю некоторые модули и некоторые исключения, о которых известно, что они конфликтуют с Джексоном fastersxml:

<jboss-deployment-structure>
<deployment>
    <dependencies>
        <module name="org.apache.cxf" export="true" meta-inf="export" />
        <module name="org.jboss.ws.native.jbossws-native-core" />
        <module name="org.apache.httpcomponents" />
        <module name="org.jboss.remote-naming" />
        <module name="org.jboss.xnio" />
        <module name="org.hornetq" />
    </dependencies>
    <exclude-subsystems>
        <subsystem name="weld" />
    </exclude-subsystems>
    <exclusions>
        <module name="org.jboss.resteasy.resteasy-jackson-provider" />
    </exclusions>
</deployment>

В настоящее время код работает иногда, а некоторые нет. Я понятия не имею, почему это может быть. Что касается случайных вещей, я думал, что это может быть проблема с загрузкой классов, но я точно не знаю. Пожалуйста, если кто-нибудь может оказать мне некоторую помощь, я исправлю ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...