[英]EJB transaction rolled back exception
我使用ejb-2我得到以下异常。 有人可以告诉我它是什么意思,以及可能的解决办法是什么:
错误(致命):EJB异常:; 嵌套异常是:
javax.ejb.TransactionRolledbackLocalException:提交事务时出错:; 嵌套异常是:
weblogic.transaction.internal.AppSetRollbackOnlyException
试着找出真正的例外情况。 为此,请将您的ejb转换为使用bean管理的事务。 然后你可以手动提交,并可以捕获提交抛出的异常。
WebLogic喜欢隐藏使用容器管理事务时在提交阶段抛出的异常。 通常原因是EJB层不知道的数据库约束,例如。 Oracle中基于函数的唯一索引。
您应该将更改刷新到数据库,然后ejb可能会向您显示真正的异常。 如果不起作用,请将flush置于可能导致异常的点。 通过这种方式,您可以保证找到真实的位置,也可以找到异常的真正原因。
我也面临同样的问题。 我只是想和大家分享一下我的经历。 在上述例外中没有提到实际的例外是正确的。 为了揭示该异常,我使用了wlspy.jar工具。 使用此工具,我在配置的日志文件中获得了内部sql活动。 由于这个我得到了隐藏的sql约束异常。 配置步骤:1)在weblogic服务器类路径中添加wlspy.jar。 2)在数据库源中添加与wlspy相关的配置。
例如:
JDBC:BEA:DB2:// db2host:50000; spyAttributes =(日志=(文件)/opt/bea/logs/mySpy.log;timestamp=yes)
之后重新启动weblogic服务器并执行活动。 您将在mySoy.log文件中获取与数据库相关的日志。 在我的情况下,我得到了实际的约束异常。
浏览此链接: http : //docs.oracle.com/cd/E21764_01/web.1111/e13753/spy.htm#JDBCD469
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.