【发布时间】:2010-10-14 23:37:32
【问题描述】:
我有一个 EJB3 应用程序,它包含一些用于访问数据库的 EJB,并通过会话 Bean 作为 Web 服务公开。
现在我需要找出两件事:
1) 有什么方法可以阻止 SQL 异常导致 Web 服务抛出 SOAP 错误?事务由容器处理,当前 sql 异常会导致引发 RollBackException,因此事务会回滚(期望的行为)并且 Web 服务会引发错误(不需要)。
2) 我希望扩展 web 服务,使其能够接收实体列表,并且会话 bean 能够持久化。但是,我希望每个实体都在自己的事务中执行,这样如果一个实体失败,其他实体不会受到影响(同样,Web 服务不应该出错)。
对于 (1) 我试图捕获 RollBackException,但我认为这是在另一个线程的某个地方抛出的,因为永远不会到达 catch 块。我假设(2)我需要研究用户事务,但首先希望容器来管理它,其次不知道如何强制使用用户事务。
谢谢。
【问题讨论】:
标签: java transactions jakarta-ee persistence ejb-3.0