2016-08-03 10 views
0

Ich habe hier gesucht und glaube nicht, dass dies ein Duplikat jeder von ihnen ist mit:Wildfly jackson Anmerkungen zu ignorieren und nicht @Provider Klasse

using Jackson annotations in Wildfly

jackson annotations being ignored

Wildfly and Jackson @JsonIgnore annotation

Verwenden von Wildfly 10 und Bereitstellen eines Krieges mit der folgenden Klasse:

@Provider 
public class JaxApplication implements ContextResolver<ObjectMapper> { 
    private final ObjectMapper mapper; 

    public JaxApplication() { 
    mapper = new ObjectMapper(); 
    mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS); 
    //throw new RuntimeException("HERE"); 
    } 

    @Override 
    public ObjectMapper getContext(Class<?> type) { 
    throw new RuntimeException("HERE"); 
    //return mapper; 
    } 

} 

Ich sehe die Ausnahme im Konstruktor geworfen, wenn ich bereitstellen, wenn es nicht kommentiert ist, aber ich sehe nicht die eine von der getContext Methode, wenn ich eine Anfrage an meinen REST-Service.

Ich habe eine @JsonIgnore Anmerkung auf eine Entität und es funktioniert nicht, noch ist die @JsonIdentityInfo Anmerkung I

Diese Klasse sieht bin mit wie diese (Importe eingeschlossen, ich bin mit com.fasterxml zu überprüfen. *)

import com.fasterxml.jackson.annotation.JsonIdentityInfo; 
import com.fasterxml.jackson.annotation.ObjectIdGenerators; 

import javax.persistence.*; 
import javax.validation.constraints.NotNull; 
import java.util.List; 

/** 
* Created by mb995a on 7/29/2016. 
*/ 
@Entity 
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@request_id", scope=Request.class) 

public class Request extends BaseEntity { 

Muss ich in meiner REST-Konfiguration etwas Spezielles tun?

@ApplicationPath("api") 
public class RestApplication extends Application { 
    public RestApplication() { 
     super(); 
    } 
} 

Irgendwelche Ideen?

Bearbeitet um zu sagen: Ich habe auch einen Komponententest, der einen ObjectMapper verwendet und es ordnungsgemäß serialisiert.

Antwort

1

Für jeden anderen habe ich das herausgefunden. Das Problem war, dass ich Jacksons in meinem Pom hatte, die nicht als "zur Verfügung gestellt" markiert waren. Dies bedeutete, dass ich Gläser in meinem Krieg Datei WEB-INF/lib Verzeichnis hatte.

Obwohl sie genau die gleiche Version von Wildflys Gläsern sind (ich verwende die gleichen Versionseigenschaften wie die WF-Version, die ich verwende), funktionieren sie nicht richtig. Sieht aus wie die hashCode() ist für die gleiche Annotation aus verschiedenen Gläsern unterschiedlich, auch wenn sie genau die gleichen (Prüfsumme und alles) sind.

Also, die Lösung war, die Abhängigkeiten als provided in Maven für alle Jackson Zeug zu markieren.

Verwandte Themen