我在j2e应用程序中遇到此问题,但找不到任何解决方案。 构建成功但存在抛出运行时异常。我尝试了谷歌的许多建议,但没有什么能解决我的问题。
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/datasource-config.xml]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Cannot parse persistence unit from class path resource [META-INF/persistence.xml]
data-source
中的entityManagerFactory<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource" >
<property name="connectionCachingEnabled" value="true" />
<property name="URL" value="jdbc:postgresql://localhost:5432/postgres" />
<property name="user" value="postgres" />
<property name="password" value="" />
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
<property name="generateDdl" value="true" />
<property name="databasePlatform" value="org.hibernate.dialect.PostgreSQLDialect" />
</bean>
</property>
<property name="dataSource" ref="dataSource" />
<property name="persistenceUnitName" value="default" />
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="dataSource" ref="dataSource" />
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<bean
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
的persistence.xml
<persistence-unit name="default" transaction-type="RESOURCE_LOCAL">
<class>com.example.j2eeapp.domain.UserEntity</class>
</persistence-unit>
答案 0 :(得分:1)
首先,java编译器在编译期间不会验证persistence.xml的存在。该错误仅在运行时发生。
您获得的堆栈跟踪非常清楚,您的程序无法在类路径上找到persistence.xml。
jar中persistence.xml的位置必须是:META-INF / persistence.xml,或者如果它是war:WEB-INF / classes / META-INF / persistence.xml
答案 1 :(得分:0)
我有类似的问题,但在我的xml文件中,我有正确的persistence.xml路径。问题在于我的实体之间的关系是错误的。我也没有错误导入日期(我使用的是没有使用sql.Date的Spring Data JPA)
答案 2 :(得分:0)
1)请检查您的数据源类oracle.jdbc.pool.OracleDataSource
2)检查您的数据库详细信息 - 用户名,密码,驱动程序URL
如果上述细节是正确的。
3)在后端创建一个数据库并尝试引用它。并确保您的代码所引用的所有表和实体都存在。
4)清理tomcat(Web服务器)并尝试重新启动应用程序
我有同样的问题。使用上述步骤解决了它。 希望这会有所帮助!!!