2012-06-19 21 views
4

我想用Spring将@PersistenceContext entityManager注入到我的服务中。以下配置独立工作,但在Tomcat上部署时不起作用。在Tomcat上部署时,entityManager保留为空。我的JPA配置位于persistence.xml中。为什么Spring在Tomcat和独立版本上运行时没有注入@PersistenceContext entityManager

<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将悄然失败。

回答

3

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

相关问题