繁体   English   中英

从 Jersey RESTful Web-Services 中抛出信息性错误消息

[英]Throwing Informative error messages out of Jersey RESTful Web-Services

我有一个 RESTful Web 服务,它执行一些 IO 和数据库活动以返回结果。

我希望看到一些Exceptions ,即由于未设置预期变量或我的数据库不再存在等而引发异常...

但是,当我抛出这些异常时,它们会被捕获并包装在HTTP 500 (Internal Server Error)异常中,这就是客户端得到的(与根异常相反)。

我想在这里查看我的异常,而不是必须查看应用程序服务器日志。

你可以实现一个 ExceptionMapper 来返回你想要的任何东西。 因此,例如,它可以将带有堆栈跟踪的整个异常放入响应中。

这是您在客户端想要的吗? 我不确定。
对于客户端来说,重建异常并重新抛出它可能是一项相当困难的工作。

此外,它非常不安全,因为堆栈跟踪会将服务器的内部代码暴露给客户端。

我建议您声明一些对客户端有意义并且您想要公开的服务器错误代码。 例子:

  • 1000 - 连接数据库失败。
  • 2000 - 别的东西

所以对于特定的异常,在 ExceptionMapper 中你可以 map 将服务器异常转换为错误代码,然后在客户端重新映射它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM