我在 Websphere 7 中从容器收到 javax.ejb.TransactionRolledbackLocalException,我想知道如何捕获此异常?我在 Websphere 中设置了超时,并在此时间后收到此消息。我运行 session bean。
我正在尝试查找导致此异常的 SQl 语句。我在哪里可以找到它?
最佳答案
As per Sun's docs 这是底线指南:如果可以合理地预期客户端会从异常中恢复,则将其设置为已检查的异常。如果客户端无法执行任何操作来从异常中恢复,请将其设为未经检查的异常。
TransactionRolledbackLocalException是未经检查的异常,如果发生,您无能为力。你可以按照 Aaron Digulla 在他的回答中建议的那样捕获它,但有什么意义呢?
如果你捕获了它,那么你就会弄乱应用程序服务器的内部结构。您将在客户端收到异常,您可以对客户端收到的异常调用 getCause() 以正确通知用户。
你有两种解决方案
- 查看导致超时的原因 (可能是错误的 SQL)
- 增加超时
关于java - 在 Java 中捕获 TransactionRolledbackLocalException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3054626/