4

我正在尝试使用 Spring 注入@PersistenceContext entityManager我的服务。以下配置独立工作,但在 Tomcat 上部署时不起作用。在 Tomcat 上部署时,entityManager 保持为空。我的 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 回答