bean创建异常_快速提示:消息驱动Bean中的异常处理
bean创建异常
让我们快速回顾一下关于消息驱动Bean的特殊处理。
MDB的入口点是重写的onMessage方法。 它不提供引发检查异常的作用域,因此,如果要处理错误情形,则需要从代码中传播未检查异常(java.lang.RuntimeException的子类)。
异常类型
EJB规范定义了两类异常,并且容器根据明确陈述的语义(同样,在EJB规范中)将一种与另一种区别。
应用例外
如果您抛出不是java.rmi.RemoteException或其子类的已检查异常(对于MDB而言是不可能的,但其他EJB可以使用此异常),或者它不是以@ javax.ejb.ApplicationException注释的RuntimeException(未检查),则该容器是将其视为应用程序异常。 因此,如果由@ javax.ejb.ApplicationException rollback属性指定,它将回滚事务,并保留MDB实例以供重用–这是非常重要的注意事项。
@ApplicationException(rollback = true)
public class InvalidCustomerIDException extends RuntimeException {public InvalidCustomerIDException(){super();}
}
系统异常
如果抛出java.rmi.RemoteException (已检查的异常)或其子类,或者抛出了未使用@ javax.ejb.ApplicationException注释的RuntimeException(未检查),则容器会将其视为系统异常。 结果,它执行某些操作,例如事务回滚,并丢弃MDB实例(这很关键) 。
public class SystemExceptionExample extends Exception {public SystemExceptionExample(){super();}
}
重要的是要考虑到MDB实例的丢弃 。 如果发生系统异常,容器将始终丢弃该实例–因此,请确保您出于预期的原因使用这些异常。 如果您使用的是应用程序异常,并且它们是未经检查的(对于MDB,则必须是它们),请确保使用@ javax.ejb.ApplicationException对其进行注释–这将确保不丢弃 MDB实例本身。
在高负载下,您可能希望池中有尽可能多的MDB,并且希望避免MDB实例退出服务状态。 明智的异常处理可以帮助您实现此目标。 就像用@ javax.ejb.ApplicationException注释异常类并将其余的留给容器一样简单:-)
参考资料
EJB(3.2)规范是465页的PDF,乍一看可能令人生畏,但它仍然是一个很好的资源,而且并不难掌握。 如果您想更详细地了解异常处理语义,请查阅第9章 ,该主题专门针对该主题。
干杯!
翻译自: https://www.javacodegeeks.com/2015/06/quick-tip-exception-handling-in-message-driven-beans.html
bean创建异常
bean创建异常_快速提示:消息驱动Bean中的异常处理相关推荐
- 火狐侧边栏_快速提示:在Firefox中使用Google Talk边栏
火狐侧边栏 Instead of using the Google Talk client embedded in Gmail, why not use it in your sidebar inst ...
- 快速提示:消息驱动Bean中的异常处理
让我们快速回顾一下有关消息驱动Bean的特殊处理. MDB的入口点是重写的onMessage方法. 它不提供引发检查异常的任何作用域,因此,如果要处理错误情形,则需要从代码中传播未检查异常(java. ...
- EJB 3.0中会话Bean,实体Bean,消息驱动Bean的作用和例子
关键词:EJB 3.0,会话Bean,实体Bean,消息驱动Bean EJB 3.0规范使开发EJB比过去更容易,可能诱惑你考虑开发第一个EJB.如果真是这种情况,那么祝贺你,你已经成功避免了在你以前 ...
- aws sqs_在Spring使用AWS SQS创建消息驱动Bean
aws sqs 在我之前的文章中,我展示了一个简单的示例,该示例如何将AWS SQS与Spring Framework结合使用以将消息放入队列并从队列中读取消息. 在本文中,我将更进一步,并使用Spr ...
- 在Spring使用AWS SQS创建消息驱动Bean
在我之前的文章中,我展示了一个简单的示例,该示例如何将AWS SQS与Spring Framework结合使用以将消息放入队列中并从队列中读取消息. 在本文中,我将更进一步,并使用Spring创建一个 ...
- 鼠标悬停字体抖动_快速提示:解决悬停状态下的字体粗细问题
鼠标悬停字体抖动 Have you ever tried to change the value of the font-weight property on link states? If yes, ...
- bootstrap手风琴_快速提示:如何自定义Bootstrap 4的手风琴组件
bootstrap手风琴 在此快速提示中,我们将构建Bootstrap 4手风琴,通过一些CSS更改对其进行定制,并应用一些JavaScript定制. 让我们开始吧! 注意 :本教程假定您对Boots ...
- java 非法操作异常_电脑提示非法操作怎么办 电脑系统故障解决方法【详解】
电脑提示非法操作怎么办? 在电脑操作中,出现"非法操作"提示的几率比蓝屏现象要多出一筹.造成"非法操作"的原因主要出自软件.当一个程序访问其内存地址空间之外的内 ...
- linux中怎么安装ded包_快速提示:如何在Linux中安装.deb和.tar文件 - push博客
在本快速教程中,我将解释如何使用终端命令在Linux中安装程序.本教程使用LinuxMint 18(肉桂64位),但是下面提供的命令对于其他版本的Linux是通用的,比如Ubuntu.对于那些刚接触l ...
最新文章
- Python之os模块用法
- Python视频处理库:scikit-video
- Java基础篇:泛型与类型擦除
- Give root password for maintenance 问题解决.
- 主域控宕机无法恢复后,如何配置辅助域控继续工作
- 使用 Tye 辅助开发 k8s 应用竟如此简单(五)
- GitHub 上最受欢迎的 5 大 Java 项目
- EditText自定义边框和背景
- Mysql 的 Explain性能分析
- IP防护等级测试设备(IPX1.2.3.4.5.6.9)
- win7电脑误删鼠标键盘驱动_重装win7系统后鼠标键盘无法使用解决方法
- 苹果系统 怎么找到共享计算机,Mac电脑怎么访问共享文件夹
- activiti学习之回退实现
- 预览文件乱码解决方法记录
- 笔记:戴蒙德模型——参数变化的影响
- Java Scaner类详解_动力节点Java学院整理
- 腾讯邮箱 新浪邮箱 网易 免费企业邮箱 阿里云/万网域名MX解析配置
- lammps教程:径向分布函数g(r)的计算与输出方法
- SOLID 设计原则 (有点长但很透彻)
- 《计算几何》学习笔记
热门文章
- P1407-[国家集训队]稳定婚姻【tarjan,强连通分量】
- P3701 -「伪模板」主席树【网络流,最大流】
- 2021牛客暑期多校训练营4 B-Sample Game(概率DP)
- codeforces1271 D. Portals(dp or 带悔贪心)
- Sentinel(二十一)之Sentinel Dashboard控制台日志路径设置
- 【附答案】Java面试2019常考题目汇总(一)
- Redis 常用操作命令,非常详细
- Oracle入门(十二G)之序列
- 今天你们表现的真棒!!!
- Java中的TreeSet集合会自动将元素升序排序