[Seasar-user:21346] [Doma]JTAでのトランザクション管理の設定方法について

浅野護 [E-MAIL ADDRESS DELETED]
2012年 6月 12日 (火) 22:09:59 JST


浅野と申します。

DomaをEJB3.1から利用しようと試しているのですが、EJB内で例外を発生させてもロールバックしない状態です。
JSFからCDI管理のBeanからEJB3.1を呼び出し、そのEJB内からDomaのDaoを利用しようとしています。
環境は以下で試しています。
APサーバ:Glassfish3
DB:MySQL
IDE:Eclipse3.7

下記のAppConfigの記述が誤っているとは思うのですが、どのように修正したらよいか分かりません。
申し訳ありませんが、教えていただけないでしょうか。


AppConfigは以下のように記述しています。

public class AppConfig extends DomaAbstractConfig {
    protected static final Dialect dialect = new MysqlDialect();

    @Override
    public DataSource getDataSource() {
        try {
            return InitialContext.doLookup("jdbc/XXXXXXX");
        } catch (NamingException e) {
            throw new RuntimeException(e);
        }
    }

    @Override
    public Dialect getDialect() {
        return dialect;
    }
}


CDI管理Beanは以下です。

@Named
@RequestScoped
public class ProjectentryController implements Serializable {
    @EJB
    ProjectService projectService;
    public String doEntry() throws Exception {
        Project entity = new Project();
        …
        projectService.persist(entity);
        return null;
    }
}

EJBは以下です。

@Stateless
@TransactionAttribute(TransactionAttributeType.REQUIRED)
@ApplicationException(rollback=true)
public class ProjectService implements Serializable {
    @Inject
    protected ProjectDao projectDao;        // Doma DAO

    public void persist(Project entity) throws Exception {
        projectDao.insert(entity);

        if (1 == 1) {
            throw new Exception();
        }
    }
}

よろしくお願いいたします。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <https://www.seasar.org/archives/seasar-user/attachments/20120612/b21e7752/attachment.html>


Seasar-user メーリングリストの案内