【发布时间】:2012-06-12 13:00:40
【问题描述】:
我有一个无状态会话 bean,其方法抛出异常(从 Exception 扩展)。
@Stateless
@LocalBean
public class MyBean {
...
public void myMethod() throws MyException {
...
}
}
但我无法捕捉到异常。
try {
myBean.myMethod
} catch (MyException e) {
...
}
这里是堆栈:
WARNING: StandardWrapperValve[MyServlet]: PWC1406: Servlet.service() for servlet MyServlet threw exception
java.lang.IllegalAccessError: example/MyException
at $Proxy327.myMethod(Unknown Source)
at example.EJB31_Generated_MyBean_Intf_Bean_.myMethod(Unknown Source)
at example.MyServlet.processRequest(MyServlet.java:36)
at example.MyServlet.doGet(MyServlet.java:71)
...
我认为,这是因为调用 bean 方法是通过代理。我怎样才能捕捉到异常?或者应该避免在会话 bean 中抛出异常的方法? - 我希望不会。
【问题讨论】:
-
“我无法捕捉到异常”是什么意思?当 bean 方法抛出 MyException 时会发生什么?
-
不捕获异常时也是如此。我在问题中添加了堆栈。
标签: jakarta-ee ejb