EJB アプリケーションを実装しています。この時点で、トランザクションが必要です。3 つのメソッドを連続して実行する必要があり、1 つが失敗した場合はすべてロールバックする必要があります。ここ: http://www.conceptgo.com/gsejb/eb04.html、チュートリアルを見つけました。私のコード:
try {
javax.transaction.UserTransaction ut = (UserTransaction) ctx.lookup("java:comp/UserTransaction");
ut.begin();
Feeds feed = loadFeed(url);
try{
em.persist(feed);
uf.setFeedId(feed.getFeedId());
uf.setUserId(user_id);
em.persist(uf);
}catch (EntityExistsException e){
ut.rollback();
return false;
}catch (IllegalArgumentException ea){
ut.rollback();
return false;
}
if (feed.getFeedId()!= null && feed!=null) {
ut.commit();
}else{
ut.rollback();
return false;
}
アプリを実行すると、次のエラー メッセージが表示されます。
Caused by: java.lang.IllegalStateException: BaseTransaction.checkTransactionState
- ARJUNA016051: thread is already associated with a transaction
何が原因で、どうすれば解決できるかわかる方いらっしゃいますか?