RESTEasy: Could not find writer for content-type application/json type

35,207

Solution 1

<dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-mapper-asl</artifactId>
      <version>${jackson-mapper-asl.version}</version>
      <scope>runtime</scope>
   </dependency>

   <dependency>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>
      <version>${jaxb-api.version}</version>
      <scope>runtime</scope>
   </dependency>

This is just more than enough.

Solution 2

If you plan to use newer versions of resteasy that implement JAX-RS 2.0, the following dependencies should solve your problem:

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jaxrs</artifactId>
    <version>3.0.5.Final</version>
</dependency>

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>jaxrs-api</artifactId>
    <version>3.0.5.Final</version>
</dependency>

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jaxb-provider</artifactId>
    <version>3.0.5.Final</version>
</dependency>

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jackson2-provider</artifactId>
    <version>3.0.5.Final</version>
</dependency>

Solution 3

If you have all necessary dependencies applied in your project, check if your class implements Serializable.

@XmlRootElement
public class MyClass implements Serializable {
    //filds
}

Maybe it solve your problem.

Solution 4

I am using all libraries included (maven project), but still when running as standalone application, generated by maven-assembly-plugin, I got same error, but when running from IDE it works without problem.

I also had problem with log4j2 logging as it was completely broken when running as standalone fat jar application (in IDE works perfectly), so I first focus on solving this:

Log4j2 configuration not found when running standalone application builded by shade plugin

So I solved problem with missing provider and log4j2 by migrating from maven-assembly-plugin to maven-shade-plugin

Share:
35,207
tamuren
Author by

tamuren

Updated on July 18, 2022

Comments

  • tamuren
    tamuren almost 2 years

    I have a restful service (post) that consumes (application/json) and produces (application/json). The single param for this service is an annotated java object.

    I am using org.jboss.resteasy.client.ClientRequest to send the request to the service. However, I am getting this exception in the client end and the exception:

    could not find writer for content-type application/json type.

    Does this mean that I am missing some library jars or I have to write my own writer for application/json?

    I am using resteasy 2.3.3.Final

    Here are various dependencies I added to my pom that I think are probably related:

        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jaxrs</artifactId>
            <version>2.3.3.Final</version>
        </dependency>
    
        <dependency>
            <groupId>com.fasterxml.jackson.jaxrs</groupId>
            <artifactId>jackson-jaxrs-json-provider</artifactId>
            <version>2.0.5</version>
        </dependency>
    
        <dependency>
           <groupId>org.jboss.resteasy</groupId>
           <artifactId>resteasy-jaxb-provider</artifactId>
           <version>2.3.4.Final</version>
        </dependency>
    
        <dependency>
           <groupId>org.jboss.resteasy</groupId>
           <artifactId>resteasy-jackson-provider</artifactId>
           <version>2.3.4.Final</version>
        </dependency>
    
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>1.3.0</version>
        </dependency>
    
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.3.0</version>
        </dependency>
    
  • ivko
    ivko over 6 years
    I also had the same problem with the standalone application missing the JSON provider. The problem was that Maven assembly plugin was overwriting the META-INF/services file responsible for registering the JAX-RS provider, because it was part of several archives, on which I depend. This helped me solve my problem: stackoverflow.com/questions/18538802/…