Ahoj, pokouším se lehce dráždit JEE7 na Wildfly (beta verze) a po očku kouknout i na ten rest+json, když už to teď tak frčí. Nicméně narazil jsem na problém, který se mi nepodařilo zatím nikde vygůglit a ani zjistit, proč mě to nemá rádo.
Co mám: hierarchii tříd, kde základní je abstraktní (a dle návodů snad i řádně oanotovaná): @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type", visible = true, defaultImpl = AccountBank.class ) @JsonSubTypes({ @JsonSubTypes.Type(value = AccountBank.class, name=AccountBank.TYPE_NAME), @JsonSubTypes.Type(value = AccountCash.class, name=AccountCash.TYPE_NAME), @JsonSubTypes.Type(value = AccountCreditCard.class, name=AccountCreditCard.TYPE_NAME) }) public abstract class Account implements Serializable { ..... } a k tomu v tom samém balíčku zmíněné tři třídy. Restová metoda @Path("/{userId}") @GET @Produces(MediaType.APPLICATION_JSON) public Account get(@PathParam("userId") String userId) vrátí json se správnými údaji vlastními skutečnému vracenému objektu, kromě políčka "type". A metoda @Path("/{userId}") @PUT @Consumes(MediaType.APPLICATION_JSON) public void create(@PathParam("userId") String userId, Account account) mě rovnou seřve (ať pošlu json s "type" nebo bez) následující hláškou: Caused by: org.codehaus.jackson.map.JsonMappingException: Can not construct instance of services.ws.rs.v1.domain.Account, problem: abstract types can only be instantiated with additional type in formation at [Source: io.undertow.servlet.spec.ServletInputStreamImpl@41408365; line: 1, column: 1] at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163) [jackson-mapper-asl-1.9.12.jar:1.9.12] at org.codehaus.jackson.map.deser.StdDeserializationContext.instantiationException(StdDeserializationContext.java:233) [jackson-mapper-asl-1.9.12.jar:1.9.12] at org.codehaus.jackson.map.deser.AbstractDeserializer.deserialize(AbstractDeserializer.java:60) [jackson-mapper-asl-1.9.12.jar:1.9.12] at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2704) [jackson-mapper-asl-1.9.12.jar:1.9.12] at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1315) [jackson-mapper-asl-1.9.12.jar:1.9.12] at org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419) at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.readFrom(AbstractReaderInterceptorContext.java:59) [resteasy-jaxrs-3.0.4.Final.jar: Máte někdo radu, co jsem (ne)udělal, že mi to ne(de)serializuje správné potomky? Díky Jirka