【问题标题】:Weblogic wrap application exception in javax.ejb.EJBExceptionWeblogic 在 javax.ejb.EJBException 中包装应用程序异常
【发布时间】:2013-03-01 12:11:12
【问题描述】:

我的耳朵应用程序运行良好。但是突然它开始在一些方法调用中抛出 javax.ejb.EJBException,而不是返回原始的应用程序异常(用 @ApplicationException(rollback=true) 注释。现在原始应用程序异常被包装在 EJBException 中。目前其他开发人员在该项目中工作的人正在休假。因此我不知道他对发生这种情况的代码做了什么。此应用程序异常和 ejb 远程接口位于一个单独的 jar 文件中,该文件部署为 weblogic 中的共享库。

我想知道引发此 EJBException 而不是引发应用程序异常的原因是什么。我认为可能是 weblogic 没有正确检测到 @ApplicationException 注释。谁能帮我解决这个问题?

【问题讨论】:

  • 注释应该如您所描述的那样工作。我同意由于某种原因,未检测到注释。最近发生了什么变化?
  • @bkail 谢谢。我找到了问题的原因并将其作为答案发布在这里。
  • 这是很好的信息。

标签: java jakarta-ee ejb-3.0 weblogic-10.x ear


【解决方案1】:

我能够通过在 ejb 方法签名的“throw”子句中添加应用程序异常来解决该问题。

以前所有的 ejb 类和应用程序异常类都在同一个 jar 文件中。但后来应用异常类和ejb远程接口被放到另一个jar文件中,称为“api”jar文件,相关的ejb文件保存在之前的jar文件中。

如果我们需要在所有类都在同一个 jar 文件中时将其视为应用程序异常,使用 @ApplicationException 声明应用程序异常似乎就足够了。但是如果应用异常类在单独的jar文件中,我们需要在ejb方法签名的“throw”子句中添加这个应用异常,以便weblogic服务器将其解释为应用异常。

【讨论】:

    猜你喜欢
    • 2017-07-02
    • 2010-10-11
    • 2011-12-20
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多