处理JAX-RS中的自定义异常类型
JAX-RS支持处理自定义异常(以EJB或CID Bean形式抛出)以处理自定义HTTP响应。
假设我们有一个“异常” EJB:
@Stateless
public class Hello {public String greeting() {if (new Random().nextBoolean())throw new GreetingException("Could not greet");return "hello";}}
@ApplicationException
public class GreetingException extends RuntimeException {public GreetingException(String message) {super(message);}}
EJB在我们的JAX-RS资源中使用:
@Path("hello")
public class HelloResource {@InjectHello hello;@GETpublic String hello() {return hello.greeting();}}
现在,将发生的异常映射到自定义HTTP响应,我们可以定义JAX-RS ExceptionMapper
。
@Provider
public class GreetingExceptionMapper implements ExceptionMapper<GreetingException> {@Overridepublic Response toResponse(GreetingException exception) {return Response.status(Response.Status.CONFLICT).header("Conflict-Reason", exception.getMessage()).build();}}
异常映射器注册为JAX-RS扩展名( @Provider
),它将处理资源方法引发的任何GreetingException
。
该示例偶尔会输出带有标头Conflict-Reason: Could not greet
HTTP 409 Conflict
。
如果使用CDI托管bean而不是EJB,则不需要@ApplicationException
批注。
翻译自: https://www.javacodegeeks.com/2017/12/handle-custom-exception-types-jax-rs.html
处理JAX-RS中的自定义异常类型相关推荐
- python自定义异常类时、可以继承的类是_Python异常类型及处理、自定义异常类型、断言...
异常的概念.识别报错信息 异常处理 断言的基本使用 异常类型(异常就是报错) 常见异常 NameError:名称错误 SyntaxError:语法错误 TypeError:类型错误 错误回溯 查看报错 ...
- 【Java】Java中的自定义异常
使用java内置的异常类可以描述在编程时出现的大部分异常情况.初次之外,用户还可以自定义异常.用户自定义异常类,只需要继承Exception类即可. 在程序中使用自定义异常类,大体可以分为以下步骤: ...
- java时间定义什么类型_1 Java中的时间类型
总结:sql中的时间转 util的时间直接赋值即可:反过来,必须先吧util下的时间转换成毫秒,再通过sql的构造器生成sql的时间格式. 1Java中的时间类型 java.sql包下给出三个与数据库 ...
- python中自定义错误_在现代Python中声明自定义异常的正确方法?
在现代Python中声明自定义异常类的正确方法是什么?我的主要目标是遵循其他异常类所具有的任何标准,以便(例如)由捕获异常的任何工具打印出异常中包含的任何额外字符串. 所谓"现代Python ...
- JDBC向数据库中插入BLOB类型数据
目录 1.Blob介绍 2.使用PreparedStatement向数据表中插入Blob类型字段 3.从数据表中读取Blob类型数据 4.特殊情况说明 1.Blob介绍 Blob是一种二进制数据文件, ...
- MySQL中的时间类型
时间是一类重要的数据,MySQL中有多种关于时间的类型可以选择.这篇文章主要介绍MySQL中的时间类型,主要参考MySQL文档:https://dev.mysql.com/doc/refman/8.0 ...
- RS中深度学习的两类方法:表示学习和匹配函数学习
目录 1 基于表示学习 1.1 无序交互 MLP 自动编码器AE 注意力机制 1.2 序列交互 RNN CNN 注意力机制 1.3 多模态内容 分类属性 用户评论 多媒体内容 1.4 链路图 端到端: ...
- 为什么要在JavaScript中使用静态类型? (使用Flow进行静态打字的4部分入门)
by Preethi Kasireddy 通过Preethi Kasireddy 为什么要在JavaScript中使用静态类型? (使用Flow进行静态打字的4部分入门) (Why use stati ...
- javascript优缺点_为什么要在JavaScript中使用静态类型? 优缺点
javascript优缺点 by Preethi Kasireddy 通过Preethi Kasireddy 为什么要在JavaScript中使用静态类型? 优缺点 (Why use static t ...
最新文章
- 端到端对话模型新突破!Facebook发布大规模个性化对话数据库
- 虚拟机系统如何添加硬件?
- 费氏搜寻法之算法分析与实现
- websocketd 实现浏览器查看服务器实时日志
- Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码
- Python下载、安装及其配置
- B4.Java web部分
- 因为不想「被绿」,美国年轻人只想和 iPhone 聊天
- iOS学习6_多线程NSThread和GCD
- 机器学习人才的职业薪酬也发展
- 程序员应该坚持写博客
- 基于RFID的物联网系统
- cdr添加节点快捷键_【CDR干货】常用cdr快捷键命令汇总,快来收藏!
- H3CIE(WLAN)学习笔记(3)——802.11帧格式与介质访问规则
- 四旋翼无人机飞控系统设计(输出分配)
- 阳历转阴历,阳历转中国农历
- MFI认证——苹果MFI认证流程
- 南京邮电大学操作系统实验四:简单文件系统模拟实验
- NDN的互联网信息高速最后一公里
- bmp图像文件格式说明