Spring を使用@PersistenceContext entityManager
してサービスに注入しようとしています。次の構成はスタンドアロンで機能しますが、Tomcat にデプロイする場合は機能しません。Tomcat にデプロイする場合、entityManager は null のままです。私のJPA構成はpersistence.xmlにあります。
<context:annotation-config />
<tx:annotation-driven/>
<bean id="entityManagerFactory"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="staticMethod">
<value>javax.persistence.Persistence.createEntityManagerFactory</value>
</property>
<property name="arguments">
<list>
<value>persistenceUnit</value>
</list>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
インジェクションを Tomcat 6 とスタンドアロンで動作させるには、どのような構成変更を行う必要がありますか?
編集: サービス内のファクトリを取得し、そこから entityManager を取得できるため、persistence.xml 設定が正しく機能しているようです。
解決策:
問題を見つけるために Spring ロギングを有効にしました -- ライブラリーの欠落。transactionManager
上記のBean を作成できない場合、Spring は静かに失敗するようです。