Reputation: 217
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
@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();
}
}
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;
}
}
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
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
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