spring RESTful服务工作正常,但抛出异常

时间:2015-02-27 00:44:50

标签: java spring rest spring-mvc

我正在创建一个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);
    }
}

经过测试,我收到了这些消息:

- 服务器端: enter image description here

- 客户方:

Client side image

2 个答案:

答案 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注释