2016-07-25 80 views
0

在Spring Boot 1.3.5中(Java 8)我想让我的控制器返回一个自定义状态码和状态信息。通过“自定义”我的意思是,一个不在org.springframework.http.HttpStatus中的状态码。具有自定义状态代码的Spring Boot控制器?

我知道,我应该坚持使用标准代码(但我不能)。

目前我的控制器做了

HttpServletResponse response 

    . 
    . 

response.setStatus(255) 

我得到预期的

java.lang.IllegalArgumentException: No matching constant for [255] 
    at org.springframework.http.HttpStatus.valueOf(HttpStatus.java:488) 
    at org.springframework.test.web.servlet.result.StatusResultMatchers.getHttpStatusSeries(StatusResultMatchers.java:139) 

注意,该操作可能会成功,所以在这种情况下,我想用一个响应返回自定义2XX代码对象(即sendError没有帮助)。谷歌说这可能在springframework 4.3中可用,但有没有人有想过现在实现(与springframework 4.2.6)?

+0

4.3有道理,你可以使用'sendError'吗? –

+1

你能提供你的异常的完整堆栈跟踪吗? – Nikem

+0

sendError不适合我,因为有时代码是为了成功的操作,我需要返回一个响应对象(将更新问题)。 – eze

回答

2

定制http代码适用于4.2。这是你junit中的匹配器,它不能断言响应代码。应该在你的浏览器上工作。