gpt4 book ai didi

java - spring工具套件休息服务不引用函数

转载 作者:行者123 更新时间:2023-12-01 11:44:45 24 4
gpt4 key购买 nike

我是java新手,正在尝试使用spring工具套件实现rest web服务。我成功运行了指南中的示例,并尝试将 POST 函数添加到基本的 Hello World 服务中。 Web 服务正在使用 Spring boot 应用程序运行,我所能追踪到的只是找不到该函数。 404状态。这是代码:

public class GreetingController {

private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
private static final Logger logger = LoggerFactory.getLogger(RestController.class);


@RequestMapping(value = "/greeting", method = RequestMethod.GET)
public @ResponseBody Greeting greeting(@RequestParam(value="name", defaultValue="World") String name, HttpServletResponse httpResponse_p,
WebRequest request_p) {
return new Greeting(counter.incrementAndGet(),
String.format(template, name));
}

// @Secured({ "ROLE_USER" })
@RequestMapping(method=RequestMethod.POST, value= {"/addNewPage/{customername}/{streamname}/{name}"})
public Greeting addName(@RequestBody String body, @PathVariable("customername") String customername, @PathVariable("streamname") String streamname,
@PathVariable("name") String name, HttpServletResponse httpResponse_p, WebRequest request_p) {

if (customername.isEmpty() || streamname.isEmpty()) {
String eMessage = "ERROR - NO PARAMETERS INCLUDED!";
httpResponse_p.setStatus(HttpStatus.BAD_REQUEST.value());
return new Greeting (counter.incrementAndGet(), String.format(template, "BAD PARAMETERS"));
}


return new Greeting(counter.incrementAndGet(), String.format("WORKING - ADDED " + name));

}

因此,如果我将以下内容粘贴到浏览器中:

http://localhost:8080/greeting?name=Al

我得到以下正确的响应:

{"id":2,"content":"Hello, Al!"}

但是如果我尝试

http://localhost:8080/addNewPage/something/stream1/ABC

我得到以下信息:

  Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing
this as a fallback.

Tue Mar 24 17:19:29 EDT 2015
There was an unexpected error (type=Not Found, status=404).
No message available

有人能看到我在这里缺少什么吗?或者好心地建议一个很好的分步教程,该教程介绍了以下功能 GET/POST/PUT/DELETE?

最佳答案

当您将 URL 粘贴到浏览器中时,您正在执行 GET。您的映射用于 POST,因此 404 错误是预期的。

通常,当您发布时,请求正文中应该有一些数据,但无论如何只是为了测试,您可以使用 curl发送帖子请求。

这是一个tutorial关于如何使用它来测试 REST API

关于java - spring工具套件休息服务不引用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29243161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com