我对用weblogic配置spring的JNDI的方式感到困惑:
据我所知,<jee:jndi-lookup id="entityManagerFactory" jndi-name="jdbc/oracledb" />
用于将数据源绑定到EntityManagerFactory.中的名称(已在weblogic服务器中创建)然后,为了允许spring检测JPA注释并在DAO中注入适当的值,我们定义了bean
<bean
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />对于jndi来说:
<jee:jndi-lookup id="entityManagerFactory" jndi-name="jdbc/oracledb" />要激活spring的jta:
<tx:jta-transaction-manager />我的persistence.xml文件是:
<persistence-unit name="ebankingUnit"
transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/oracledb</jta-data-source>
<class>com.datamodel.Product</class>我得到的错误是,DAO中的实体管理器是空,
我的配置有什么问题吗?
发布于 2014-03-22 23:13:20
查找<jee:jndi-lookup id="entityManagerFactory" jndi-name="jdbc/oracledb" />几乎肯定是针对DataSource,而不是entityManagerFactory。您的配置可能需要
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/oracledb" />
<bean
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
id="entityManagerFactory">
<property name="dataSource" ref="dataSource" />
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />
</bean>
<tx:jta-transaction-manager />https://stackoverflow.com/questions/22583884
复制相似问题