简体   繁体   中英

Could not resolve view with name 'streamrecords' in servlet with name 'spring'

I am using a simple stream interger number from controller example using Spring 4, Java 8, Tomcat 7 .

CODE:

package com.entrib.emg.server.controller.rest;
import java.io.IOException;
import java.io.OutputStream;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody;

@Controller
public class StreamRecordsController {

    @RequestMapping(value = "/streamrecords", method = RequestMethod.GET)
    public StreamingResponseBody handleRequest ()
            throws Exception {

        return new StreamingResponseBody() {
            @Override
            public void writeTo (OutputStream out) throws IOException {
                for (int i = 0; i < 1000; i++) {
                    out.write((Integer.toString(i) + " - ")
                                        .getBytes());
                    out.flush();
                    try {
                        Thread.sleep(5);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        };
    }
}

ERROR:

Type Exception Report

Message Could not resolve view with name 'streamrecords' in servlet with name 'spring'

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

javax.servlet.ServletException: Could not resolve view with name 'streamrecords' in servlet with name 'spring'
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1266)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    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)
Note The full stack trace of the root cause is available in the server logs.

BELOW IS THE SNAPSHOT:

在此输入图像描述

QUESTION:

What am I missing over here.

EXPECTATIONS:

This is just a simple rest API code, I am expecting a stream of integers streamed from this controller when the API is hit from either browser or postman.

------------------------------------------------

UPDATED

------------------------------------------------

When I added @ResponseBody , I am getting below error,

Type Status Report

Description The target resource does not have a current representation that would be acceptable to the user agent, according to the proactive negotiation header fields received in the request, and the server is unwilling to supply a default representation.

您在servlet方法上缺少@ResponseBody,或者您可以使用@RestController标记您的类

只需将类的注释更改为@RestController即可

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM