我正在创建一个Spring RESTful服务,它正在运行。我的客户端将一个对象发送到put请求,我的服务完全接收到该对象,但在此之后,我的客户端收到此异常:“org.springframework.web.client.HttpClientErrorException:404 Not Found”
这是我的客户代码:
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
Greeting greeting = new Greeting(21l, FileUtils.toByteArray("src/main/resources/test.png"));
String url = "http://localhost:8080/DolphinRestServer/bulletin/put";
restTemplate.put(url,greeting);
这是我的服务器代码:
@Service
@RequestMapping("/bulletin")
public class BulletinService {
@RequestMapping(method = RequestMethod.PUT, value = "/put")
public void put(@RequestBody Greeting greeting){
System.out.println("it's work fine and my greeting is here --------->"+greeting);
}
}
经过测试,我收到了这些消息:
- 服务器端:
- 客户方:
答案 0 :(得分:2)
您的put
方法的回复类型为void
。此外,它不会将HttpServletResponse
作为参数。根据{{3}},当出现这种情况时,Spring MVC使用URL作为视图名称并尝试呈现它。在你的情况下,Spring MVC试图找到并加载一个名为/bulletin/put
的视图,它无法找到它,因此也就是404消息。
答案 1 :(得分:0)
正如您所看到的,它正在20:40:34:085发出另一个请求DolphinRestServer / bulletin / bulletin /放入服务器端,找不到错误页面。
这是因为你两次调用BulletinService。
您定义为bean并且它有一个注释。确保您只加载/扫描此包一次..
删除BulletinService上的@service注释