NotFoundException 的 HTTP 状态代码 500
我正在使用 RESTEasy 和 JBOSS 5.1 开发一个应用程序。
对于特定情况,我必须返回 404 错误(未找到)。
在源代码中,我正在使用
import org.jboss.resteasy.spi.NotFoundException;
throw new NotFoundException(...);
问题是,在标头响应中,我有 状态代码:500内部服务器错误
即使在正文中异常是:
org.jboss.resteasy.spi.UnhandledException: org.jboss.resteasy.spi.NotFoundException
这是正常行为吗?无法返回状态码:404?
I'm developing an application with RESTEasy and JBOSS 5.1.
For specific situations, I have to return 404 error (not found).
In the sources, I'm using
import org.jboss.resteasy.spi.NotFoundException;
throw new NotFoundException(...);
The problem is that, in the header response, I have
Status Code: 500 internal server error
even if in the body the exception is:
org.jboss.resteasy.spi.UnhandledException: org.jboss.resteasy.spi.NotFoundException
This is a normal behavior? It's not possible to return Status Code: 404?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我遇到一些问题。我找到了根本原因。内置异常处理仅出现在resteasy最新版本build 2.3.1 GA中。如果你升级到这个版本。你可以得到预期的结果。
I encounter some problem. I found the root cause. The built-in exception handle is only occur in resteasy newest version build 2.3.1 GA. If you upgrade to this version.You can get the expected result.
RestEASY 没有立即处理
NotFoundException
,这似乎有点奇怪。它应该,根据文档:< /a>无论如何,您可以通过添加 ExceptionMapper 来解决这个问题:
It does seem a bit strange that RestEASY does not handle the
NotFoundException
out of the box. It should, according to the docs:Anyways, you can work around it by adding an
ExceptionMapper
:您应该在休息方法中使用:而不是抛出异常
我相信,当您需要返回未找到时,
。问候。
I believe that instead of throwing an exception you should use:
in your rest method when you need to return a not found.
regards.
也许自定义 javax.servlet.Filter 可以提供帮助。
Maybe a custom javax.servlet.Filter can help.