У меня есть класс, аннотированный @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>
В настоящее время код работает иногда, а некоторые нет. Я понятия не имею, почему это может быть. Что касается случайных вещей, я думал, что это может быть проблема с загрузкой классов, но я точно не знаю.
Пожалуйста, если кто-нибудь может оказать мне некоторую помощь, я исправлю ее.