我在路径“/test”中有一个无用的endpoint:
@PUT
public Response doSomething() {
return Response.status(409).build();
}
我这样测试:
@Test
public void uselessTest() {
put("/test").then().assertThat().statusCode(409);
}
但我得到一个断言错误:
预期状态代码
这发生在更多的代码中:400,500...除了200。
我用的是Spring靴。如果在运行测试时在endpoint方法中放置断点,则执行将停止,因此测试中的请求将正确完成。如果我将状态代码(在资源和测试中也是)更改为200,则测试通过。
到底发生了什么?
我也遇到了这个问题,通过从spring boot自动配置中排除ErrorMvcAutoConfiguration解决了这个问题:
@EnableAutoConfiguration(exclude = { ErrorMvcAutoConfiguration.class })
Jersey在出现错误状态(4xx,5xx)时的默认行为是使用servlet的响应。sendError,导致重定向到错误页面。由于没有设置错误页面,因此会导致404。
我们可以通过设置泽西房产来改变这种行为
服务器属性。RESPONSE\u SET\u STATUS\u OVER\u SEND\u ERROR(响应\u设置\u状态\u发送\u错误)
您可以在ResourceConfig子类中执行此操作
public JerseyConfig extends ResourceConfig {
public JerseyConfig() {
property(ServerProperties.RESPONSE_SET_STATUS_OVER_SEND_ERROR, true);
}
}
或者(使用Spring Boot)您可以将其添加到
application.properties
文件中。
spring.jersey.init.jersey.config.server.response.setStatusOverSendError=true
问题内容: 我试图按照此链接中的建议将错误返回到对控制器的调用,以便客户端可以采取适当的措施。javascript通过jqueryAJAX调用控制器。仅在不将状态设置为error的情况下,我才可以重新获得Json对象。这是示例代码 如果没有设置状态码,我会得到Json。如果设置状态代码,则会返回状态代码,但不会返回Json错误对象。 更新 我想将Error对象作为JSON发送,以便可以处理ajax
我想在我的应用程序中实现对Jersey Rest/JSON的JUnit测试。 我的问题是我得到一个404没有找到从灰熊。但是路径是正确的,并且在普通Webcontainer上使用Curl的测试是正常的。 Eclipse Indigo(在Windows 7上) asm-3.3.1.jar Jerse-Client-1.12.jar 球衣-核心-1.12.jar jerse-json-1.12.jar
我在TYPO3 v10中为我的robots.txt使用静态文本路由(默认为. htaccess文件)。文本按预期传递,但标头中的StatusCode为404。我不知道如何解决这个问题,因为静态文本路由中没有设置状态代码的选项。 这是我的路线代码(如文档中所述:https://docs.typo3.org/m/typo3/reference-coreapi/10.4/en-us/ApiOvervie
404错误不会作为库中的直接返回,而是作为错误抛出在捕获中。我的问题是现在我可以以某种方式在捕获中查询,错误有哪个数字? 或者如何使用axios库查询它是否是404错误?
问题内容: 我看到了一些类似的问题(像这样),但是没有一个问题专门解决这个问题。 因此,Google 现在支持SPA,并且大多数网络浏览器都支持HTML5 pushState 。 我的AngularJS(但可能是任何JS东西)网站都使用URL来确定API路由。然后执行API调用,然后相应地呈现内容。 但是,由于 每个URL都 返回HTTP 200状态代码(包括example.com/get-fre
我开发了带有jar包装的小型spring boot应用程序。应用程序用例是,用户将登录到应用程序,它将显示欢迎页面。下面是我的代码。 主类 登录控制器类 登录。jsp welcome.jsp application.properties xml 现在,当我通过eclipse执行这个应用程序时,它工作得很好。我使用在目标文件夹中创建的maven工具构建了一个jar应用程序。我已经使用命令行从目标文件