title: How to overcome no converter found error
body: <p>I am working on the project which uses Spring 4.3.2.Release and hibernate 5.2.9.Final versions. It is a Spring + hibernate + Restful service based example.</p>
  
  <p>While doing the demo I got the error : No Converter found:</p>
  
  <p>Following are the credentials of my code.</p>
  
  <p>servlet.xml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:jdbc="http://www.springframework.org/schema/jdbc"
      xmlns:mvc="http://www.springframework.org/schema/mvc"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
          http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
          http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd
          http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
          http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"&gt;
  
      &lt;mvc:annotation-driven/&gt;
      &lt;mvc:default-servlet-handler/&gt;
      &lt;context:annotation-config/&gt;
      &lt;context:component-scan base-package="practice.ngresource.tryone.controller.**"&gt;&lt;/context:component-scan&gt;
  
      &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt;
          &lt;property name="prefix" value="/views/"&gt;&lt;/property&gt;
          &lt;property name="suffix" value=".html"&gt;&lt;/property&gt;
      &lt;/bean&gt;
  
  &lt;/beans&gt;
  </code></pre>
  
  <p>This is Rest Controller.</p>
  
  <pre><code>import org.springframework.web.bind.annotation.RestController;
  
  import practice.ngresource.tryone.model.Task;
  
  
  @RestController
  @RequestMapping("/trialone")
  public class TrialController {
  
      @ResponseStatus(HttpStatus.OK)
      @RequestMapping(value="/trial",method=RequestMethod.GET)
      public List&lt;Task&gt; taskList(){
          System.out.println("inside the gettasklist");
          List&lt;Task&gt; list = new ArrayList&lt;&gt;();
          list.add(new Task("one","oneDesc","completed"));
          list.add(new Task("Two","twoDesc","completed"));
          list.add(new Task("Three","threeDesc","pending"));
          list.add(new Task("four","fourDesc","pending"));
          list.add(new Task("five","fiveDesc","completed"));
          return list;
      }
  
  }
  </code></pre>
  
  <p>View and correspond JS page is : </p>
  
  <pre><code>&lt;!DOCTYPE html&gt;
  &lt;html&gt;
  &lt;head&gt;
  &lt;meta charset="ISO-8859-1"&gt;
  &lt;title&gt;Insert title here&lt;/title&gt;
  &lt;/head&gt;
  &lt;body ng-app="trial1App" ng-controller="trialController as tCont"&gt;
          &lt;h1&gt;The Task List is as follow&lt;/h1&gt;
          &lt;div&gt;
              &lt;table&gt;
                  &lt;tr ng-repeat="data in tCont.tasks"&gt;
                      &lt;td&gt;{{data.taskName}}&lt;/td&gt;
                  &lt;/tr&gt;
              &lt;/table&gt;
  
          &lt;/div&gt;
  
          &lt;script type="text/javascript"
          src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"&gt;&lt;/script&gt;
          &lt;script type="text/javascript"
          src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular-resource.min.js"&gt;&lt;/script&gt;
          &lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"&gt;&lt;/script&gt;
          &lt;script&gt;
  
  
  
              var trialApp = angular.module('trial1App', ['ngResource']);
  
              trialApp.factory('Task',['$resource',function($resource){
                      return $resource('http://localhost:8080/NgRes_Prac_001/trialone/trial/:trialId',
                              {trialId:'@tId'},
                              {
                                  updateTask : {method : 'PUT'}
                              });
                  }]);
  
              trialApp.controller('trialController', ['$scope','Task',function($scope,Task){
                      var ob = this;
                      ob.tasks = [];
                      ob.fetchAllTasks = function(){
                              console.log("Inside Fetch all list");                           
                              ob.tasks = Task.query();
                              console.log("Fetch List Completed");
                          };
  
                      ob.fetchAllTasks();
                  }]);
  
  
  
          &lt;/script&gt;
  &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>And following is my error status.</p>
  
  <pre><code>Apr 17, 2017 1:43:24 PM org.apache.catalina.core.StandardWrapperValve invoke
  SEVERE: Servlet.service() for servlet [ngRs001] in context with path [/NgRes_Prac_001] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.ArrayList] with root cause
  java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.ArrayList
      at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:188)
      at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:173)
      at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:81)
      at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:130)
      at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
      at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
      at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
      at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
      at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
      at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
      at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
      at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)
      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      at java.lang.Thread.run(Unknown Source)
  </code></pre>
  
  <p>Please help me through this.
  Thanks in advance.</p>