首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在EJB web服务的构造函数中引发异常

在EJB web服务的构造函数中引发异常
EN

Stack Overflow用户
提问于 2013-10-10 20:04:41
回答 2查看 1.1K关注 0票数 1

我有一个EJB Web服务。我已经创建了由web服务方法抛出的自定义错误类,这非常有效。我的客户捕获这些自定义异常并很好地处理它们。我遇到的问题是,如果在bean的构造函数中发生异常,而我抛出了自定义异常,则客户端不会收到我的自定义异常,它会收到以下内容:

代码语言:javascript
运行
AI代码解释
复制
javax.xml.ws.soap.SOAPFaultException: javax.ejb.EJBException: javax.ejb.CreateException: Could not create stateless EJB
at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:178)
at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:111)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)
at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
at $Proxy34.getLots(Unknown Source)

我的问题是:是否可以在EJB的构造函数中抛出自定义异常并从客户端接收这些异常?如果是这样的话,我做错了什么?

我的代码:

EJB构造器

代码语言:javascript
运行
AI代码解释
复制
public LotManagement() throws LotManagementException
{
    try {
        pm = new PromisManager();
    } catch (UnknownHostException ex) {
        java.util.logging.Logger.getLogger(LotManagement.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        FaultBean LotManagementFaultBean = new FaultBean();
        throw new LotManagementException(ex.getMessage() + "\n\n" + propMan.getProperty("ContactMessage"), LotManagementFaultBean, ex.getCause());
    }
}

故障Bean

代码语言:javascript
运行
AI代码解释
复制
package com.onsemi.cim.exception;
import javax.xml.ws.WebFault;

@WebFault(name="LotManagementException")

public class LotManagementException extends Exception {

private static final long serialVersionUID = 1L;

private FaultBean faultBean;

public LotManagementException() {
    super();
}

public LotManagementException(String message, FaultBean faultBean,
        Throwable cause) {
    super(message, cause);
    this.faultBean = faultBean;
}

public LotManagementException(String message, FaultBean faultBean) {
    super(message);
    this.faultBean = faultBean;
}

public FaultBean getFaultInfo() {
    return faultBean;
}

}
EN

回答 2

Stack Overflow用户

发布于 2013-10-11 05:34:40

可能的解决方案是,您可以尝试捕获构造函数中的异常并处理那里的所有异常。与你的客户达成协议,你要么抛出一个异常,要么发送一些自定义的错误消息,比如status 0/1等,然后根据响应代码,他们可以决定相应地工作。

此外,我也鼓励您不要抛出自定义异常,并尝试发送错误消息,因为如果将来由于某些原因需要替换您的自定义错误机制,那么您需要要求您的客户端做一些相应的更改。

票数 0
EN

Stack Overflow用户

发布于 2013-10-11 05:13:34

实际上,从构造函数中抛出异常并不是一个好主意,因为不同的API(比如Spring)对待它们的方式是不同的。您之所以会收到这个错误,是因为当您从EJB构造函数获得异常时,它会抛出CreateException。因此,我的意见是检查并尽可能地从构造函数中删除异常。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19305165

复制
相关文章
异步编程Ajax的详解,并对其进行封装整理
对于Ajax,肯定很多小伙伴都听过甚至用过了,那么没听过的也不用着急,本文会对Ajax进行讲解,其次,一定还有一些人只用过JQuery封装好了的Ajax却对原生的Ajax并不了解,那么也不用着急,本文从最基本的Ajax开始讲起,然后最后会尽可能得模仿JQuery对其进行封装,让我刚才提到的两类人能对Ajax有进一步的了解。
@零一
2021/01/29
1.7K0
思维导图 - 如何对信息进行分类?
绘制思维导图时,分类是最重要的,其需要满足MECE(相互独立,完全穷尽),而且需要逻辑自洽,否则就会导致结构不清晰,部分信息分类不明确 为什么要做分类? 因为人脑擅长记忆和处理结构化的信息 如何分类? 需要符合MECE(Mutually Exclusive & Collectivyly Exhaustive)原则,也就是相互独立,完全穷尽,简单来说就是不重不漏 分类集合需要逻辑自洽,比如时间关系,组合关系,关系,层次关系等 某一类信息太多的时候,也可以使用多级分类 常用分类和结构化分析模式 做信息分类
十毛
2021/07/20
7090
sql对多个条件进行分组求和_分组求和法例题附答案
大家好,又见面了,我是你们的朋友全栈君。 在ireport中实现分组,求和。效果如下 name total A 2 A 3 subtotal 5 B 4 B 5 subtotal 9 添加Document–>Variables–>Variable Name 建立自定义的求和函数 设置相关属性。 Calculation 设置为sum reset type为report Reset group 选择自己创建的分组。 increment type 为Group Variable Expression填写你要累计的对象表达式。 new Integer($F{rxNo}) Initial Value Expression处填写数据类型的初始化对象。 new java.lang.Integer(0)
全栈程序员站长
2022/10/03
2.8K0
python将多个文件内容输出到一个文件中
生成多个文件脚本 #coding=utf-8 #import os #import sys sql1Script = ''' use scrm_%s; -- 公司code需替换为相应公司的code CREATE OR REPLACE VIEW `scrm_crm_contract` AS SELECT * FROM scrm_jishufuwu.`scrm_crm_contract` WHERE `company_code` = '%s'; -- 更新数据库版本. INSERT INTO gf_db_v
章工运维
2023/05/19
1.3K0
AI框架识别野生动物群体行为并对其进行分类
伊利诺伊大学,意大利米兰理工大学和加州大学戴维斯分校提出了一个统计框架,用于识别野生动物群体行为。在初步实验中,与基线方法相比,它显著表现出了更好的分类准确性。
AiTechYun
2019/07/05
6490
AI框架识别野生动物群体行为并对其进行分类
Liunx基础-记录终端输出到文本文件
在工程项目中碰过过这样一个需求:需要从终端输出的结果解析出运行时间数据,手动肉眼读对于大量的时间数据而言肯定不现实,并且对于专业的程序员而言,要想着从程序的角度去解决工程问题,能用代码解决的问题都一定要用标准的代码去解决。所以才有了这篇文章,用 Linux 命令将终端输出结果记录到文件中,再由正则表达式方法解析文本文件抽取时间数据。
嵌入式视觉
2022/09/05
1.8K0
Liunx基础-记录终端输出到文本文件
获取页面所有a标签并对其添加title属性
今天公司需要做seo优化,添加所有的a标签上面添加title属性。前台在一个一个的添加,我发现了就建议他使用js获取所有的a然后增加属性即可~~(收藏了) <script type=”text/javascript”> $(function(){ for(i=0;i<$(“a”).length;i++) { var a_content=$(“a:eq(“+i+”)”).text(); $(“a:eq(“+i+”)”).attr(‘title‘,a_content); } }); </scrip
苦咖啡
2018/05/08
4.2K0
Unity使用AssetImporter整理资源对其进行打包
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
bering
2019/12/02
2.8K0
mysql——通过命令将sql查询的结果导出到具体文件
 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013045437/article/details/81275960
拓荒者
2019/03/15
1.9K0
mysql——通过命令将sql查询的结果导出到具体文件
【C 语言】文件操作 ( 将结构体写出到文件中并读取结构体数据 | 将结构体数组写出到文件中并读取结构体数组数据 )
写出结构体 : 直接将结构体指针指向的 , 结构体大小的内存 , 写出到文件中即可 ;
韩曙亮
2023/03/29
2.8K0
【C 语言】文件操作 ( 将结构体写出到文件中并读取结构体数据 | 将结构体数组写出到文件中并读取结构体数组数据 )
对虎牙直播进行爬取,并对信息进行处理分析
对虎牙直播进行爬取,并对信息进行处理分析 08.16爬虫练手 一.代码 import requests from lxml.html import etree #我们先选个lol专区 response = requests.get('https://www.huya.com/g/lol') response.encoding =response.apparent_encoding response_html = etree.HTML(response.text) #以上是网页获取以及解析 #相关信息
小小咸鱼YwY
2019/09/11
2.3K0
批量对多个测序文件进行fastqc
现在一共是728*2=1456个测序文件,需要全部进行质控。 fastqc的命令很简单,直接跟文件即可,参数里面主要用-o(输出路径)和-t(线程,一般用2或4)
Y大宽
2019/05/29
3.9K0
css hover对其包含的元素进行样式设置
<ul class="icon-down-single-arr-li"> <li> <a href="javascript:void(0)">价格<span class="icon-all icon-down-single-arr"></span></a> </li> </ul> 对a链接包含的span图标进行样式更改。 .icon-down-single-arr{ background-position: -67px -974px; } .icon-down-sing
smy
2018/04/03
2.1K0
java数据导出为excel表格_将数据库表中数据导出到文本文件
公司开发新系统,需要创建几百个数据库表,建表的规则已经写好放到Excel中,如果手动创建的话需要占用较长的时间去做,而且字段类型的规则又被放到了另一张表,如果手动去一个一个去匹配就很麻烦,所以我先把两张表都导入数据库中,建表的数据如下:
全栈程序员站长
2022/10/29
3.3K0
java数据导出为excel表格_将数据库表中数据导出到文本文件
优化查询性能(三)
可以使用解释或显示计划工具来显示SELECT、DECLARE、UPDATE、DELETE、TRUNCATE TABLE和一些INSERT操作的执行计划。这些操作统称为查询操作,因为它们使用SELECT查询作为其执行的一部分。InterSystems IRIS在准备查询操作时生成执行计划;不必实际执行查询来生成执行计划。
用户7741497
2022/06/08
1.2K0
Python基础(6)——实现输入任意多个数,并计算其平均值
学习了Python相关数据类型,函数的知识后,利用字符串的分割实现了输入任意多个数据,并计算其平均值的小程序。思路是接收输入的字符串,以空格为分隔符,将分割的数据存入列表(lst1)中,将lst1中的数据转存入另一个空列表(lst)中,转存时将字符串转化为整型,从而利用函数求出lst中数的和、平均值,是Python基础(5)中结尾程序的升级版。
用户7886150
2020/12/29
2.5K0
【说站】Python如何对多个sheet表进行整合?
1、xlwt模块是非追加写入.xls模块,所以要一次性写入for循环和列表,这样就没有追加和非追加的说法。
很酷的站长
2022/11/24
1K0
【说站】Python如何对多个sheet表进行整合?
如何将SQL语句进行自动翻译
这里我们利用SQL-to-Text Generation with Graph-to-Sequence Model一文, 给大家简单介绍一下如何对SQL语句进行自动翻译
Mezereon
2018/12/14
3K0
如何将SQL语句进行自动翻译
VBA: 将数组输出到工作表
文章背景:工作中,有时需要获取数据源的信息,临时存储在数组中,然后再将数组中的数据传递到目标工作表中。其中主要用到Resize函数,WorksheetFunction.transpose函数和WorksheetFunction.Index函数。
Exploring
2022/09/20
4.3K0
VBA: 将数组输出到工作表
点击加载更多

相似问题

循环SQL行并对其进行排序

30

SQL:如何重命名SQL case语句并仍然能够对其进行分组

15

将变量写入文本文件并对其进行加密?

48

创建多个工作表并对其重命名

22

进入文本文件的一行并对其进行编辑

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文