Aliy
Aliy

Reputation: 217

Not able to return JSON response from Spring controler (Added jackson jars too)

I'm trying to send list of customers as JSON response, but, its returning with error response as

 No converter found for return value of type: class java.util.ArrayList

Config class

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "net.ifg.spring")
public class AppConfig {

@Bean
public Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder() {
    Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
    return builder;
}
}

My controller is

@RestController
public class CustomerRestController {

    @Autowired
    private CustomerDAO customerDAO;

    @GetMapping("/customers")
    public List<Customer> getCustomers() {
        return customerDAO.list();
    }

}

Customer class

public class Customer {

private Long id;
private String firstName;


public Customer(long id, String firstName) {
    this.id = id;
    this.firstName = firstName;     
}

public Customer() {
}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getFirstName() {
    return firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}


}

JARs added

commons-logging-1.2.jar, jackson-core-asl-1.9.13.jar, jackson-mapper-asl-1.9.13.jar, jackson-databind-2.9.0.jar, spring-aop,spring-core,spring-beans,spring-context, spring-expression, spring-web, spring-webmvc(all 4.3.9 version)

Still its returning me error response.

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.ArrayList
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Any ideas would be greatly appreciated

Upvotes: 0

Views: 502

Answers (2)

Akhil
Akhil

Reputation: 1

If this is being made in Spring MVC then the dispatcher-servlet's xml file must have <mvc:annotation-driven />tag for conversion to work.

Upvotes: -1

vikas
vikas

Reputation: 280

Add Jackson dependency or jar in your project.

Like,

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>VERSION</version></dependency>

Upvotes: -1

Related Questions