2

私たちはJavaEEショップなので、Springの開発経験はありません。ただし、Springで実行され、既存のJavaEEソリューションを統合する必要があるニーズに対応するソリューションを検討しています。

Spring 3.0.5のドキュメントを読んだ後でも、トランザクションをSpringからEJBに伝播する方法がわかりません。

たとえば、Spring Beanはトランザクションを作成し、いくつかのものを1つのデータベースに保存してから、トランザクションをステートレスセッションBeanの1つに渡します。これにより、(JPAを使用して)他のものが別のデータベースに保存されます。そして、これらすべてが同じトランザクションの下で実行される必要があります。このトランザクションは、コントロールがSpringBeanに戻されたときにコミットされます。

また、デプロイメントについても明確ではありません。Springは、セッションBeanを含むEARでWebアプリとして実行されますか?

4

1 に答える 1

4

JTATransactionManagerを使用するようにSpringを構成し、Spring内からSessionBeanを呼び出す場合、Beanは実際にSpringが作成したトランザクションを取得する必要があります。こちらをご覧ください:http ://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#transaction-application-server-integrationおよび説明<tx:jta-transaction-manager/>

私は実際には逆の方法(春にEJBトランザクションに参加する)でしか行っていないので、完全にはわかりませんが、設定することで簡単にテストできます

@TransactionAttribute(TransactionAttributeType.MANDATORY)

SessionBeanで、春から呼び出します...既存のトランザクションがない場合は、TransactionRequiredException

于 2012-06-13T13:49:42.887 に答える