【发布时间】:2015-05-28 11:37:18
【问题描述】:
编辑: 看来我观察到 localhost 和 AWS 都返回 409 是不正确的。 AWS 返回 500(我仍然希望返回 null,因为 Exception.class 的 @ExceptionHandler 方法清楚地将状态设置为 500 并返回 null)。仔细查看异常消息,“无法检查 JDBC 自动提交模式;嵌套异常是 org.hibernate.exception.GenericJDBCException:无法检查 JDBC 自动提交模式”,这看起来更像是数据库问题。
原文:
我有一个用 Java/Spring 编写的 RESTful 服务。在这个服务中,我有 3 个 @ExceptionHandler 方法,所有这些方法都返回 null。只有一个异常将状态设置为 409 Conflict,这是我在当前场景中所期望的。
在本地主机上使用 Postman 测试服务时,在特定情况下,我得到了预期的 409 Conflict with no data body。但是,当我在 amazonaws.com 上部署后点击该服务时,我得到了 409 冲突,结果正文由时间戳、状态、错误、异常和消息 值组成。 /manage/info 返回的版本看起来是正确的,并且报告的 git commit 数据完全相同。
localhost 版本返回 4 个标头(加上一个自定义标头):
- 内容长度 = 0
- 日期 =(今天)
- 服务器 = Apache-Coyote/1.1
- X-Application-Context = 应用程序
Amazon AWS 版本返回 5 个标头(加上相同的自定义标头):
- Content-Type = application/json;charset=UTF-8
- 日期 =(今天)
- 服务器 = Apache-Coyote/1.1
- 传输编码 = 分块
- X-Application-Content = 应用程序,应用程序
这可能是什么原因造成的?我调用服务的应用程序〜可以处理任何一种情况,但是当服务本身显然发生了一些奇怪的事情时,在那里进行修复似乎是错误的。它被编码为期望 null,而不是由不属于非 409 结果一部分的值组成的主体。
【问题讨论】:
-
太棒了!看来我忽略了什么。从 AWS 服务器返回的响应不是我最初所说的 409,而是 500。我怀疑这个问题可能已经关闭。我正在更新问题。
标签: java spring rest amazon-web-services