gpt4 book ai didi

java - 为什么在 Tomcat 和独立运行时 Spring 不注入(inject) @PersistenceContext entityManager

转载 作者:搜寻专家 更新时间:2023-11-01 03:10:42 25 4
gpt4 key购买 nike

我正在尝试使用 Spring 将 @PersistenceContext entityManager 注入(inject)到我的服务中。以下配置独立工作,但在 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>

为了使注入(inject)在 Tomcat 6 和独立版本上工作,我需要进行哪些配置更改?

编辑:我能够在服务中获取工厂并从中获取 entityManager,因此 persistence.xml 设置似乎工作正常。

解决方案:我启用了 Spring 日志记录来查找问题——缺少库。如果无法创建上述 transactionManager bean,显然 Spring 会悄悄失败。

最佳答案

如果我理解正确,您必须确保 persistence.xml 存在于您的 tomact 上的正确路径中,或者更准确地说 - 在您的类路径中。
至少我在处理 enterprise application 时遇到过这样的问题,所以我想这是开始寻找答案的好地方。
你检查日志了吗?他们有什么有趣的事吗?

关于java - 为什么在 Tomcat 和独立运行时 Spring 不注入(inject) @PersistenceContext entityManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11102325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com