I have this problem in my j2e application and I can't find any solution. Build was successful but there is thrown runtime exception. I tried many advices from google but nothing can solve my problem.
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]
entityManagerFactory in data-source
<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>
Firstly, java compiler will not validate the existence of persistence.xml during compile time. The error only happen at runtime.
Stack trace you're getting is pretty clear, your program could not locate persistence.xml on classpath.
The location of persistence.xml within your jar has to be: META-INF/persistence.xml, or if it's war: WEB-INF/classes/META-INF/persistence.xml
I've had similar problem, but in my xml-file I've had correct path to persistence.xml. Problem was in that relations between my entities was wrong. Also I've had wrong import for date (I used Spring Data JPA which doesn't use sql.Date)
1)Please check your datasource class it says
oracle.jdbc.pool.OracleDataSource
2)Check your db details- username, password, driver URL
If the above details are correct.
3)Create a database in the back-end and try to refer it. And make sure all your tables and entities that your code is referring, are present.
4)clean your tomcat(web server) and try to restart your application
I had the same issue. Resolved it using the above steps. Hope this helps !!!