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创建异常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337674.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言线程库的使用,这篇值得收藏!

点击蓝字关注我们1. 线程概述线程是轻量级的进程(LWP:light weight process),在 Linux 环境下线程的本质仍是进程。在计算机上运行的程序是一组指令及指令参数的组合,指令按照既定的逻辑控制计算机运行。操作系统会以进…

alexeyab darknet 编译_【目标检测实战】Darknet—yolov3模型训练(VOC数据集)

原文发表在:语雀文档0.前言本文为Darknet框架下,利用官方VOC数据集的yolov3模型训练,训练环境为:Ubuntu18.04下的GPU训练,cuda版本10.0;cudnn版本7.6.5。经过一晚上的训练,模型20个类别的mAP达到…

html字符串转svg,【SVG】如何操作SVG Text

上周我们学习了如何使用元素创建SVG文本。在实例中我们设置了x和y坐标来定位文本,也尝试了给SVG文本中的每个字符定位。关于元素还有很多内容。在处理SVG文本时,不要局限于x和y属性。元素还有几个可以添加的属性,现在我们开始讨论吧。dx和dy属…

aws sqs_在Spring使用AWS SQS创建消息驱动Bean

aws sqs在我之前的文章中,我展示了一个简单的示例,该示例如何将AWS SQS与Spring Framework结合使用以将消息放入队列并从队列中读取消息。 在本文中,我将更进一步,并使用Spring创建一个“消息驱动的Bean”,以便对放入队…

C++ 面试考点(三)

点击蓝字关注我们21、构造函数和析构函数可以调用虚函数吗,为什么在C中,提倡不在构造函数和析构函数中调用虚函数;在构造函数和析构函数调用的所有函数(包括虚函数)都是编译时确定的, 虚函数将运行该类中的版本.因为父类对象会在子类之前进行…

用终端访问路由器设置端口开发_serial for mac(终端管理软件)v2.0.3

原标题:serial for mac(终端管理软件)v2.0.3serial for mac是应用在Mac上的一款终端管理软件,可以帮助您连接和控制串行设备,如服务器,路由器或调制解调器等网络设备,PBX系统等。好消息是Serial为大多数串行设备提供了…

学计算机编程200字感想,计算机学习心得体会

你们现在是在用电脑教学吗?本文是出国留学网特意为你准备的《课堂计算机学习心得体会》,希望对你能够提供帮助,如果还有更多需要了解的,欢迎访问出国留学网主页了解更多。https://www.liuxue86.com利用计算机能使动画、声音、文字…

静态变量读取属性文件_一种通过变量插值读取属性的方法

静态变量读取属性文件最近,我尝试在应用程序服务器中定义和读取全局属性。 在应用程序服务器中配置的此类属性的好处–可以在此服务器上部署的所有Web应用程序之间共享该属性。 每个部署的应用程序都可以读取同一属性,该属性仅在一个位置配置一次。 我试…

大神级的C++性能优化,你能看懂吗?

点击蓝字关注我们一、前言性能优化不管是从方法论还是从实践上都有很多东西,文章会从C语言本身入手,介绍一些性能优化的方法,希望能做到简洁实用。二、实例1在开始本文的内容之前,让我们看段小程序:// 获取一个整数对应…

钢笔墨水能否代替打印机墨水_LAMY钢笔应该如何选择墨水?

其实墨水世面上基本是有两种:碳素墨水和非碳素。碳素墨水相对比较堵笔,碳素墨水对钢笔本身腐蚀性不大,腐蚀性大的那是染料/颜料墨水。碳素墨水写字非常容易有笔锋,而非碳素墨水就显得略微柔和了。有人说,字写得好的人用…

html ctf查找,Web CTF 解题思路总结—南京邮电大学攻防平台writeup

1、直接查看源代码例:签到题(50)2、PHP的特性(1)MD5 碰撞例:md5 collision(50)md5碰撞:MD5摘要算法可以从多个字节组成的串中计算出由32个字节构成的“特征串”,对于超过32字节的串来说,MD5计算得出的值必然是其一个子…

java 1.8新增功能_睡觉时:新增的Java 8新增功能

java 1.8新增功能自Java 8推出以来,最有趣的功能是什么? Java 8最近庆祝了它的第一个生日,其主要版本已经在一年多以前了。 这当然值得庆祝。 自从最初的Java 8版本问世以来,已经发布了六个更新。 这些更新中的某些元素是次要的…

C++ 为什么不加入垃圾回收机制

点击蓝字关注我们Java的爱好者们经常批评C中没有提供与Java类似的垃圾回收(Gabage Collector)机制(这很正常,正如C的爱好者有时也攻击Java没有这个没有那个,或者这个不行那个不够好),导致C中对动态存储的官吏称为程序员的噩梦,不是…

c++ 共享内存_Python3.8多进程之共享内存

最近发了个宏愿想写一个做企业金融研究的Python框架。拖出Python一看已经更新到了3.8,于是就发现了Python 3.8里新出现的模块:multiprocessing.shared_memory。随手写了个测试。生成一个240MB大小的pandas.DataFrame,然后转换成numpy.recarra…

计算机主机箱外部介绍图,电脑的主机结构是怎样的 电脑主机结构图【图文】...

在电脑已经普及的今天,基本上每家每户都有电脑了,大家用它来看电影,搜索资料啊,上网啊等等。在我们日常的娱乐方式中,电脑也是我们的娱乐项目之一,至少还是好多人用它看电影和追剧的。但是机器会有故障的时…

基于netty的微服务网关_基于Rx-netty和Karyon2的云就绪微服务

基于netty的微服务网关Netflix Karyon提供了一个干净的框架来创建可用于云的微服务。 在您的组织中,如果您使用包含Eureka的Netflix OSS堆栈进行服务注册和发现,使用Archaius进行资产管理,那么很可能会使用Karyon创建微服务。 Karyon最近发生…

C 语言各数据类型的内存映像

点击蓝字关注我们C语言各种数据类型的内存映像&#xff08;32位平台&#xff09;&#xff1a;0 signed char#include <stdio.h> int main() {char min 1<<7;char max (1<<7)-1;for(int imin;i<max;i)if(i<0)printf("%.2X ",(unsigned char…

用java编写一个图书管理系统_手把手教你编写第一个java程序

安装完jdk后我们就可以试着编写第一个java程序了&#xff0c;让我们一起来试试吧&#xff01;第一步点击开始——所有程序——附件——记事本&#xff0c;新建记事本&#xff0c;输入以下代码&#xff1a;class HelloWorld { public static void main(String args[]) { System.…

最常用计算机机箱,电脑机箱的常用材质是什么?

镀锌钢板机箱板材常用有镀锌板、冷轧板、铝板等&#xff0c;而镀锌钢板具有抗酸、防锈、防蚀、使用年限长、材质轻等特点&#xff0c;同时外表也较为美观&#xff0c;因此镀锌钢板是最为常见的机箱材质。镀锌钢板的颜色通常为灰色&#xff0c;表面细腻&#xff0c;经过表面烤漆…

go micro java_Java Micro Framework:您无法忽略的新趋势

go micro java什么是Java微框架&#xff0c;为什么要使用它们&#xff1f; 每种语言都有权衡。 对于Java&#xff0c;要成为一种安全&#xff0c;经过严格测试&#xff0c;向后兼容的语言&#xff0c;就要在敏捷性和简化方面做出一些牺牲。 无可否认&#xff0c;有些冗长和冗长…