2017-05-19 10 views
2

Wildfly 10.1.0を使用していますが、Jave EE 7(JTA 1.2のため)以来提供されているすべてのEJBを@Transactionalアノテーションのみを使用するように変更しようとしています。事は私のプロジェクトが0のEJBを持っているときです、PersistenceUnitはコンテナによって開始されません。注釈が空のクラスを追加した場合は、@Statelessというアノテーションだけが再び動作します。無EJBの利用可能がある場合永続ユニットが@Transactionalのみを使用している場合

これは、私のpersistence.xml

<persistence version="2.1"> 
    <persistence-unit name="Storage-PU" transaction-type="JTA"> 
    <jta-data-source>java:/PostGreDS</jta-data-source> 
    <class>SomeEntity<class> 
    <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    </persistence-unit> 
</persistence> 

PersistenceUnitが開始されていない理由は何であるのですか?

+0

それを使用したことがありますか? –

答えて

3

EJBが利用できない場合、PersistenceUnitが開始されない理由は何ですか?

enter image description here

ので、ちょうど注釈を付ける豆:

理由は、JEEアプリケーションで(DB接続、永続単位やものを含む)永続コンテキストが開始されると、EJBコンテナによって管理されるということです@TransactionalのWeb層のメソッドでは、永続コンテキストを開始するには十分ではありません。トランザクションはWebコンテナではなくEJBコンテナによっても管理されることに注意してください。

JEEアーキテクチャの詳細については、Java Platform, Enterprise Edition: The Java EE Tutorialを参照してください。

関連する問題