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 ПРЕДУПРЕЖДЕНИЕ: выполнение обработчика привело к исключению: не удалось найти приемлемое представление

0 ответов

Другие вопросы по тегам