quarkus: RESTEASY008200: JSON Binding deserialization error: No default constructor

Describe the bug I get the error described in https://github.com/quarkusio/quarkus/issues/3179. The issue was closed as it should be resolved with quarkus 1.0 Final and its dependency yasson 1.0.5. But error is still there. I cannot add a no args constructor because the class is defined within an external dependency (library).

javax.ws.rs.ProcessingException: RESTEASY008200: 
JSON Binding deserialization error: javax.json.bind.JsonbException:  Can't create instance of a class: class com.domain.Task, No default constructor found.
		at org.jboss.resteasy.plugins.providers.jsonb.JsonBindingProvider.readFrom(JsonBindingProvider.java:78)
	at org.jboss.resteasy.core.interception.jaxrs.AbstractReaderInterceptorContext.readFrom(AbstractReaderInterceptorContext.java:102)
	at org.jboss.resteasy.core.interception.jaxrs.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:81)
	at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readFrom(ClientResponse.java:226)
	at org.jboss.resteasy.specimpl.BuiltResponse.readEntity(BuiltResponse.java:88)
	at org.jboss.resteasy.specimpl.AbstractBuiltResponse.readEntity(AbstractBuiltResponse.java:270)
...
Caused by: javax.json.bind.JsonbException: Can't create instance of a class: class com.domain.Task, No default constructor found.
	at org.eclipse.yasson.internal.serializer.ObjectDeserializer.getInstance(ObjectDeserializer.java:95)
	at org.eclipse.yasson.internal.serializer.AbstractContainerDeserializer.deserialize(AbstractContainerDeserializer.java:61)
	at org.eclipse.yasson.internal.serializer.CollectionDeserializer.deserializeNext(CollectionDeserializer.java:106)
	at org.eclipse.yasson.internal.serializer.AbstractContainerDeserializer.deserializeInternal(AbstractContainerDeserializer.java:84)
	at org.eclipse.yasson.internal.serializer.AbstractContainerDeserializer.deserialize(AbstractContainerDeserializer.java:60)
	at org.eclipse.yasson.internal.Unmarshaller.deserializeItem(Unmarshaller.java:68)
	at org.eclipse.yasson.internal.Unmarshaller.deserialize(Unmarshaller.java:54)
	at org.eclipse.yasson.internal.JsonBinding.deserialize(JsonBinding.java:53)
	at org.eclipse.yasson.internal.JsonBinding.fromJson(JsonBinding.java:93)
	at org.jboss.resteasy.plugins.providers.jsonb.JsonBindingProvider.readFrom(JsonBindingProvider.java:70)
	... 48 more

There must be a bug somewhere in Yasson, RESTEasy or Quarkus. The method execution works in wildfly but not in quarkus. Maybe yasson or something else cannot add a default constructor in quarkus at runtime if one is missing (by reflection).

Environment (please complete the following information):

  • Output of java -version: 12
  • Quarkus version or git rev: 1.0 Final

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 16 (8 by maintainers)

Most upvoted comments

Can you please try using the resteasy-jackson dependency instead of resteasy-jsonb?

The json annotations that you are using seem to be Jackson annotations, not JSON-B annotations.