这是我的项目:
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/send或http://localhost:8080/producer/
时我在调用返回时返回了此错误消息:
出现意外错误(type = Not Found,status = 404)。
出了什么问题? 非常感谢
答案 0 :(得分:2)
你从你的方法返回字符串“hello”,Spring认为它是一个视图名称。我认为在你的情况下它不是,所以试试这个:
android:textColorSecondary
这样“hello”就是从你的方法返回的字符串。
注释中提到的@RestController也有效,它也做同样的事情 - 假设返回的字符串是内容,而不是视图名称。答案 1 :(得分:2)
使用 @RestController 代替@Controller
@RestController
@RequestMapping(value = "/producer")
public class ProducerController {
....
}
404的HTTP状态代码恰恰是合适的 未找到资源时的响应状态代码。 因为现在控制器已注释 使用@RestController,从这些方法返回的对象将通过 消息转换为客户端(浏览器)生成资源表示。