Could not find any META-INF/persistence.xml file in the classpath
Solution 1
I think your project is misconfigured. META-INF folder should stay in src/main/resources and WEB-INF folder in src/main/webapp
of your web maven project. Here is an example where I do some CRUD over web api.
Solution 2
You need to move persistence.xml to a location on your app server's class path. For a Maven project, that is typically in the src/main/resources
folder. Check the Hibernate documentation to see if Hibernate expects the file to be in a sub-folder, or if putting it in the root of the classpath is OK.
Related videos on Youtube
Comments
-
flxplzk almost 2 years
I am tryig to set up JPA to my RESTful webapi in order to make CRUD services on database. I am getting the error
Could not find any META-INF/persistence.xml file in the classpath
But actually ther in a persistence.xml in the folderMETA-INF
1 [main] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.5.6-Final 17 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.5.6-Final 20 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found 23 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist 27 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 110 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final 115 [main] INFO org.hibernate.ejb.Version - Hibernate EntityManager 3.5.6-Final 129 [main] INFO org.hibernate.ejb.Ejb3Configuration - Could not find any META-INF/persistence.xml file in the classpath Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named KAPAPLAN at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32) at de.ham.ti.kapaplan.database.DBCon.main(DBCon.java:20)
here my persistence.xml
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" version="2.1"> <persistence-unit name="KAPAPLAN" transaction-type="JTA"> <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> <class>de.ham.ti.kapaplan.model</class> <properties> <!-- Configuring JDBC properties --> <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@//***db-domain***/***service-name***" /> <property name="javax.persistence.jdbc.user" value="***user***" /> <property name="javax.persistence.jdbc.password" value="***pw***" /> <property name="javax.persistence.jdbc.driver" value="com.mysema.query.jpa.support.ExtendedOracleDialect" /> <!-- Hibernate properties --> <property name="hibernate.show_sql" value="true" /> <property name="hibernate.format_sql" value="true" /> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> <property name="hibernate.hbm2ddl.auto" value="validate" /> <!-- Configuring Connection Pool --> <!-- <property name="hibernate.c3p0.min_size" value="5" /> <property name="hibernate.c3p0.max_size" value="20" /> <property name="hibernate.c3p0.timeout" value="500" /> <property name="hibernate.c3p0.max_statements" value="50" /> <property name="hibernate.c3p0.idle_test_period" value="2000" />--> </properties> </persistence-unit> </persistence>
I double checked similar questions but non of them solved my issue. ann ideas?
EDIT: my Maven pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>de.ham.ti.kapaplan</groupId> <artifactId>kapaplan</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>kapaplan</name> <build> <finalName>kapaplan</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <inherited>true</inherited> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build> <dependencyManagement> <dependencies> <dependency> <groupId>org.glassfish.jersey</groupId> <artifactId>jersey-bom</artifactId> <version>${jersey.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>3.5.6-Final</version> </dependency> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet-core</artifactId> <!-- use the following artifactId if you don't need servlet 2.x compatibility --> <!-- artifactId>jersey-container-servlet</artifactId --> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-moxy</artifactId> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0</version> </dependency> </dependencies> <properties> <jersey.version>2.16</jersey.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> </project>
-
Francesco over 6 yearsPost your project's structure. Is it a maven one?
-
flxplzk over 6 yearsi edited an added the pom structure
-
Neil Stockton over 6 yearsWhy would you look for a provider "org.hibernate.jpa.HibernatePersistenceProvider" in a jar that doesn't provide it (hibernate-entitymanager-3.5.6) ?
-
Francesco over 6 yearsIs your META-INF/persistence.xml in your-project/src/main/resources? It should be enought.
-
flxplzk over 6 yearsWEB-INF is in src/main/resources sitll not working
-
Francesco over 6 yearsWEB-INF should not stay there. It should stay in src/main/webapp folder.
-
-
flxplzk over 6 yearsWell i think you were right. I set up a new project and it worked fine. thanks