Я пытаюсь получить аннотации Джексона, работающие в приложении JBoss RestEasy на сервере EAP 6.1.1. Чтобы быть более точным, я хочу получить JacksonPolymorphicDeserialization, работая через аннотацию, как сделано here.jackson jboss eap6.1.1 аннотации не работают
Теперь это кажется простым, но по какой-то причине он не работает. я получил следующий код:
package example.model;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@type",visible = true)
@JsonSubTypes({@JsonSubTypes.Type(value = ImplementedRequest.class, name = "implementedrequest")})
public abstract class Request {
}
и осуществление абстрактного класса:
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@type", visible = true)
public class ImplementedRequestextends Request {
@NotEmpty
private Person applicant;
private List<AbstractApplicationPart> applications;
}
Я создал конечную точку, которая делает запрос и обрабатывает запрос:
@Path("serviceRequest")
@Named("RequestResource")
@RequestScoped
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ValidateRequest
@IgnoreMediaTypes(MediaType.APPLICATION_JSON)
public class RequestResource {
public Boolean saveRequest(@Valid Request request, @Context HttpServletRequest req) throws JAXBException, AnError {
//Some awesome processing happens here
}
public Response getDummyData() {
// Creates and fills the ImplementedRequestextends
return result;
}
}
сейчас Я также сделал некоторую конфигурацию и убедился, что загружаю модули Jackson в Jboss с развертыванием войны. И убедитесь, что в моем пом у меня такая же версия, как и у модулей.
Я ожидаю теперь, что если я делаю вызов я получаю что-то вроде:
{
"applicant": { "name":"Dummy data", "age":31},
"applications": [ {"sport":"soccer"},{"sport":"judo"} ]
}
Я ожидал получить @type
имя с полем implementedrequest
. Это моя первая попытка; в конечном итоге я также хочу, чтобы абстрактный массив работал так. Но я даже не могу заставить эту работу работать.
Возможный дубликат [Невозможно перейти на Джексон 2.1.4, Джерси, игнорируя аннотации] (http://stackoverflow.com/questions/15436268/unable-to-upgrade-to-jackson-2-1-4- jersey-ignoring-the-annotations) – SQB