java spring mvc你好找不到世界类型

时间:2018-01-15 16:56:49

标签: java spring spring-mvc spring-boot

这是我的项目:

ProducerController .java:

package mypackage.application;

@Controller
@RequestMapping(value = "/producer")
public class ProducerController {

    @RequestMapping(value="/", method = RequestMethod.GET, produces = "application/json")
    public String info() {
        return "hello";
    }

    @RequestMapping(value="/send", method = RequestMethod.GET, produces = "application/json")
    public Email greeting() {
        return new Email("send@tome.com","hello");
    }
}

Email.java

public class Email {

    private String to;
    private String body;

    public Email(String to, String body) {
        this.to = to;
        this.body = body;
    }
    public String getTo() {
        return to;
    }
    public void setTo(String to) {
        this.to = to;
    }
    public String getBody() {
        return body;
    }
    public void setBody(String body) {
        this.body = body;
    }

}

Application.java

@SpringBootApplication
@ComponentScan(basePackageClasses=ProducerController.class)
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(EbmApplication.class, args);
    }
}

当我执行GET请求http://localhost:8080/producer/sendhttp://localhost:8080/producer/

我在调用返回时返回了此错误消息:

出现意外错误(type = Not Found,status = 404)。

出了什么问题? 非常感谢

2 个答案:

答案 0 :(得分:2)

你从你的方法返回字符串“hello”,Spring认为它是一个视图名称。我认为在你的情况下它不是,所以试试这个:

android:textColorSecondary

这样“hello”就是从你的方法返回的字符串。

注释中提到的@RestController也有效,它也做同样的事情 - 假设返回的字符串是内容,而不是视图名称。

答案 1 :(得分:2)

使用 @RestController 代替@Controller

 @RestController  
 @RequestMapping(value = "/producer")
    public class ProducerController {
    ....      
    }

404的HTTP状态代码恰恰是合适的 未找到资源时的响应状态代码。 因为现在控制器已注释 使用@RestController,从这些方法返回的对象将通过 消息转换为客户端(浏览器)生成资源表示。