Spring MVC @ResponseBody дает ОШИБКУ HTTP Status 406 - Недопустимо
Я пытаюсь создать простой спокойный код веб-службы с весны. Вот полный код, который я создал до сих пор:
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>TemporaryTry01</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
dispatcher-servlet.xml:
<?xml version="1.0" encoding="UTF-8"?>
<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"
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.xsd">
<context:component-scan base-package="com.arman"/>
</beans>
Student.java:
package com.arman.dta;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Student {
@JsonProperty("student_name")
private String studentName;
private long mobileNo;
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
public long getMobileNo() {
return mobileNo;
}
public void setMobileNo(long mobileNo) {
this.mobileNo = mobileNo;
}
}
HelloController.java
package com.arman.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.arman.dta.Student;
@Controller
public class HelloController {
@ResponseBody
@RequestMapping(value="/students", method=RequestMethod.GET) // already Tried to add produces attribute explicitly with MediaType.APPLICATION_JSON_VALUE but that too is not working
public ArrayList<Student> getStudentList(){
Student st = new Student();
st.setStudentName("Arman");
st.setMobileNo(903434555L);
Student st1 = new Student();
st1.setStudentName("Avasthi");
st1.setMobileNo(779232245L);
ArrayList<Student> studentList = new ArrayList<Student>();
studentList.add(st);
studentList.add(st1);
return studentList;
}
}
Я добавил все пружинные банки (версия-4.2.2), банку регистрации общих файлов, а также 3 банки Джексона, а именно: jackson-annotations-2.8.1.jar jackson-core-2.8.1.jar jackson-databind-2.8.1.jar
У меня не возникает проблем со временем компиляции при использовании Eclipse Oxygen IDE. Но когда я запускаю проект (на Tomcat 8 с номером порта 7070) и пытаюсь получить доступ:
http://localhost:7070/TemporaryTry01/students
Я получаю следующую страницу ошибки
И в трассировке стека это показывает:
10 декабря 2017 г. 20:51:15 org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver logException ПРЕДУПРЕЖДЕНИЕ: выполнение обработчика привело к исключению: не удалось найти приемлемое представление