|
From: Ove R. <ora...@gm...> - 2015-03-03 06:14:26
|
Hi, I use: RESTEeasy 3.0.9 + Jackson FasterXml 2..4.5 and I’m porting a JSF based app to REST. In my EntityBeans I tag my class as follows: https://gist.github.com/oranheim/e21063f0a0002be95df0 <https://gist.github.com/oranheim/e21063f0a0002be95df0>, but when call ResteasyWebTarget.proxy(resource) @POST .create(user) the exception below is thrown. What is the right approach to tag my entity beans? What annotations should be used? Only properties and associations and a few @Transent helpers should be serialized. Any ideas? Are there some options (object mapper) or header that should be set? Ove 6:59:33.955 [XNIO-1 task-1] ERROR o.j.resteasy.core.ExceptionHandler - Failed executing POST /users org.jboss.resteasy.spi.ReaderException: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "user" (class com.parts.commons.model.user.User), not marked as ignorable (16 known properties: "gender", "lastname", "passwordHint", "invitationLimit", "release", "createdByUser", "dateUpdated", "homeAddress", "username", "version", "dateCreated", "id", "firstname", "website" [truncated]]) at [Source: io.undertow.servlet.spec.ServletInputStreamImpl@6aa3b957; line: 1, column: 277] (through reference chain: com.parts.commons.model.user.User["user"]) at org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:183) ~[resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.core.MethodInjectorImpl.injectArguments(MethodInjectorImpl.java:89) ~[resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:112) ~[resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:296) ~[resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:250) ~[resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:237) ~[resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356) [resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179) [resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220) [resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) [resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) [resteasy-jaxrs-3.0.9.Final.jar:na] at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final] at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) [undertow-servlet-1.1.2.Final.jar:1.1.2.Final] at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.1.2.Final.jar:1.1.2.Final] at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.1.2.Final.jar:1.1.2.Final] at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) [undertow-servlet-1.1.2.Final.jar:1.1.2.Final] at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56) [undertow-servlet-1.1.2.Final.jar:1.1.2.Final] at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.2.Final.jar:1.1.2.Final] at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.1.2.Final.jar:1.1.2.Final] at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63) [undertow-servlet-1.1.2.Final.jar:1.1.2.Final] at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.1.2.Final.jar:1.1.2.Final] at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.1.2.Final.jar:1.1.2.Final] at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.1.2.Final.jar:1.1.2.Final] at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.2.Final.jar:1.1.2.Final] at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) [undertow-core-1.1.2.Final.jar:1.1.2.Final] at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261) [undertow-servlet-1.1.2.Final.jar:1.1.2.Final] at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:247) [undertow-servlet-1.1.2.Final.jar:1.1.2.Final] at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:76) [undertow-servlet-1.1.2.Final.jar:1.1.2.Final] at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:166) [undertow-servlet-1.1.2.Final.jar:1.1.2.Final] at io.undertow.server.Connectors.executeRootHandler(Connectors.java:197) [undertow-core-1.1.2.Final.jar:1.1.2.Final] at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:764) [undertow-core-1.1.2.Final.jar:1.1.2.Final] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_31] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_31] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_31] Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "user" (class com.parts.commons.model.user.User), not marked as ignorable (16 known properties: "gender", "lastname", "passwordHint", "invitationLimit", "release", "createdByUser", "dateUpdated", "homeAddress", "username", "version", "dateCreated", "id", "firstname", "website" [truncated]]) at [Source: io.undertow.servlet.spec.ServletInputStreamImpl@6aa3b957; line: 1, column: 277] (through reference chain: com.parts.commons.model.user.User["user"]) at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:51) ~[jackson-databind-2.4.5.jar:2.4.5] at com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:744) ~[jackson-databind-2.4.5.jar:2.4.5] at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:915) ~[jackson-databind-2.4.5.jar:2.4.5] at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1306) ~[jackson-databind-2.4.5.jar:2.4.5] at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1284) ~[jackson-databind-2.4.5.jar:2.4.5] at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:243) ~[jackson-databind-2.4.5.jar:2.4.5] at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:118) ~[jackson-databind-2.4.5.jar:2.4.5] at com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:1232) ~[jackson-databind-2.4.5.jar:2.4.5] at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:676) ~[jackson-databind-2.4.5.jar:2.4.5] at org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider.readFrom(ResteasyJackson2Provider.java:120) ~[resteasy-jackson2-provider-3.0.9.Final.jar:na] at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.readFrom(AbstractReaderInterceptorContext.java:59) ~[resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.core.interception.ServerReaderInterceptorContext.readFrom(ServerReaderInterceptorContext.java:62) ~[resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:51) ~[resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.aroundReadFrom(GZIPDecodingInterceptor.java:59) ~[resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:53) ~[resteasy-jaxrs-3.0.9.Final.jar:na] at org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:150) ~[resteasy-jaxrs-3.0.9.Final.jar:na] ... 33 common frames omitted |
|
From: Ron S. <rs...@re...> - 2015-03-13 22:21:23
Attachments:
AnnotationTest.java
|
Hi Ove,
I'm trying to recreate your problem with a simple, self-contained
example. The attached program, AnnotationTest, doesn't generate
exceptions, and the output is
...
entity: {"firstname":"abc","lastname":"xyz"}
...
In particular, the field named "ignore" is omitted. What am I missing
that would cause an exception to be thrown?
Thanks,
Ron
On 03/03/2015 01:14 AM, Ove Ranheim wrote:
> Hi,
>
> I use: RESTEeasy 3.0.9 + Jackson FasterXml 2..4.5 and I’m porting a
> JSF based app to REST.
>
> In my EntityBeans I tag my class as follows:
> https://gist.github.com/oranheim/e21063f0a0002be95df0, but when call
> ResteasyWebTarget.proxy(resource) @POST .create(user) the exception
> below is thrown.
>
> What is the right approach to tag my entity beans? What annotations
> should be used? Only properties and associations and a few @Transent
> helpers should be serialized.
>
> Any ideas? Are there some options (object mapper) or header that
> should be set?
>
> Ove
>
>
> 6:59:33.955 [XNIO-1 task-1] ERROR o.j.resteasy.core.ExceptionHandler -
> Failed executing POST /users
> org.jboss.resteasy.spi.ReaderException:
> com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:
> Unrecognized field "user" (class com.parts.commons.model.user.User),
> not marked as ignorable (16 known properties: "gender", "lastname",
> "passwordHint", "invitationLimit", "release", "createdByUser",
> "dateUpdated", "homeAddress", "username", "version", "dateCreated",
> "id", "firstname", "website" [truncated]])
> at [Source: io.undertow.servlet.spec.ServletInputStreamImpl@6aa3b957;
> line: 1, column: 277] (through reference chain:
> com.parts.commons.model.user.User["user"])
> at
> org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:183)
> ~[resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.core.MethodInjectorImpl.injectArguments(MethodInjectorImpl.java:89)
> ~[resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:112)
> ~[resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:296)
> ~[resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:250)
> ~[resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:237)
> ~[resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
> [resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179)
> [resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)
> [resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
> [resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
> [resteasy-jaxrs-3.0.9.Final.jar:na]
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
> [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final]
> at
> io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
> [undertow-servlet-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61)
> [undertow-servlet-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
> [undertow-servlet-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
> [undertow-servlet-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56)
> [undertow-servlet-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> [undertow-core-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45)
> [undertow-core-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63)
> [undertow-servlet-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
> [undertow-core-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
> [undertow-servlet-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
> [undertow-core-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> [undertow-core-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
> [undertow-core-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261)
> [undertow-servlet-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:247)
> [undertow-servlet-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:76)
> [undertow-servlet-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:166)
> [undertow-servlet-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.server.Connectors.executeRootHandler(Connectors.java:197)
> [undertow-core-1.1.2.Final.jar:1.1.2.Final]
> at
> io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:764)
> [undertow-core-1.1.2.Final.jar:1.1.2.Final]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> [na:1.8.0_31]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> [na:1.8.0_31]
> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_31]
> Caused by:
> com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:
> Unrecognized field "user" (class com.parts.commons.model.user.User),
> not marked as ignorable (16 known properties: "gender", "lastname",
> "passwordHint", "invitationLimit", "release", "createdByUser",
> "dateUpdated", "homeAddress", "username", "version", "dateCreated",
> "id", "firstname", "website" [truncated]])
> at [Source: io.undertow.servlet.spec.ServletInputStreamImpl@6aa3b957;
> line: 1, column: 277] (through reference chain:
> com.parts.commons.model.user.User["user"])
> at
> com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:51)
> ~[jackson-databind-2.4.5.jar:2.4.5]
> at
> com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:744)
> ~[jackson-databind-2.4.5.jar:2.4.5]
> at
> com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:915)
> ~[jackson-databind-2.4.5.jar:2.4.5]
> at
> com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1306)
> ~[jackson-databind-2.4.5.jar:2.4.5]
> at
> com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1284)
> ~[jackson-databind-2.4.5.jar:2.4.5]
> at
> com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:243)
> ~[jackson-databind-2.4.5.jar:2.4.5]
> at
> com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:118)
> ~[jackson-databind-2.4.5.jar:2.4.5]
> at
> com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:1232)
> ~[jackson-databind-2.4.5.jar:2.4.5]
> at
> com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:676)
> ~[jackson-databind-2.4.5.jar:2.4.5]
> at
> org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider.readFrom(ResteasyJackson2Provider.java:120)
> ~[resteasy-jackson2-provider-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.readFrom(AbstractReaderInterceptorContext.java:59)
> ~[resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.core.interception.ServerReaderInterceptorContext.readFrom(ServerReaderInterceptorContext.java:62)
> ~[resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:51)
> ~[resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor.aroundReadFrom(GZIPDecodingInterceptor.java:59)
> ~[resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:53)
> ~[resteasy-jaxrs-3.0.9.Final.jar:na]
> at
> org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:150)
> ~[resteasy-jaxrs-3.0.9.Final.jar:na]
> ... 33 common frames omitted
>
>
>
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming The Go Parallel Website, sponsored
> by Intel and developed in partnership with Slashdot Media, is your hub for all
> things parallel software development, from weekly thought leadership blogs to
> news, videos, case studies, tutorials and more. Take a look and join the
> conversation now. http://goparallel.sourceforge.net/
>
>
> _______________________________________________
> Resteasy-developers mailing list
> Res...@li...
> https://lists.sourceforge.net/lists/listinfo/resteasy-developers
|