4

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 は静かに失敗するようです。

4

1 に答える 1

3

私が正しく理解している場合は、persistence.xmlがtomactの適切なパス、またはより正確にクラスパスに存在することを確認する必要があります。
少なくともエンタープライズアプリケーションで作業しているときにそのような問題があったので、これは答えを探し始めるのに良い場所だと思います。
ログを確認しましたか?彼らはこれについて何か面白いことをしますか?

于 2012-06-19T13:55:31.320 に答える