2017-08-29 6 views
1

Ich kodiere eine eigenständige Java-Anwendung, baue sie aus einem Maven-Projekt und durch Aufruf der JAR-Datei ausgeführt.Persistenz Einheit wird überschrieben

Bei der Anwendung ich eine Entität Manager mit einem Persistenzeinheit haben, in meinem persistence.xml definiert Eigenständig werden (transaktions type = „RESOURCE_LOCAL“)

Die eigentliche Entity kommentierten kommt Klassen aus einem anderen Projekt und sind daher als eine Abhängigkeit zur Datei pom.xml hinzugefügt.

Das Problem besteht darin, dass die persistence.xml des Projekts, das die Entitätsklassen enthält, die persistence.xml der tatsächlichen eigenständigen Anwendung im Zielordner des jars beim Erstellen überschreibt.

Die Maven Build-Prozess geht erfolgreich durch, aber wenn das Glas laufen bekomme ich eine Ausnahme wie:

Exception in thread "main" javax.persistence.PersistenceException: Keine Persistenz-Provider für "PersistenceUnitXXX" nach folgende entdeckt Implementierungen versuchen: org.eclipse.persistence.jpa.PersistenceProvider

Weiterhin die Persistenzeinheit der Projekte, die Entity-Klassen enthalten, fo soll Ich denke nicht, dass es möglich ist, diese persistence.xml für die eigenständige Anwendung wiederzuverwenden.

Die pom wie folgt aussieht:

<?xml version="1.0" encoding="UTF-8"?> 
<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <parent> 
     <groupId>com.my</groupId> 
     <artifactId>projects</artifactId> 
     <version>1.0</version> 
     <relativePath>../..</relativePath> 
    </parent> 

    <groupId>com.my.projects</groupId> 
    <artifactId>mystandaloneapp</artifactId> 
    <version>1.0</version> 
    <packaging>jar</packaging> 

    <dependencies> 
     <dependency> 
      <groupId>com.oracle.weblogic</groupId> 
      <artifactId>ojdbc7</artifactId> 
      <version>12.1.3-0-0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.openejb</groupId> 
      <artifactId>javaee-api</artifactId> 
      <version>6.0-5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.eclipse.persistence</groupId> 
      <artifactId>eclipselink</artifactId> 
      <version>2.6.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.eclipse.persistence</groupId> 
      <artifactId>javax.persistence</artifactId> 
      <version>2.1.0</version> 
     </dependency> 
     <dependency> 
      <groupId>javax</groupId> 
      <artifactId>javaee-web-api</artifactId> 
      <version>7.0</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.json</groupId> 
      <artifactId>json</artifactId> 
      <version>20170516</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-codec</groupId> 
      <artifactId>commons-codec</artifactId> 
      <version>1.10</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.httpcomponents</groupId> 
      <artifactId>httpcore</artifactId> 
      <version>4.4.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <version>1.4.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-security</artifactId> 
      <version>1.4.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok</artifactId> 
      <version>1.16.16</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.my</groupId> 
      <artifactId>my_entities</artifactId> 
      <version>1.0</version> 
      <scope>compile</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
      </resource> 
     </resources> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <configuration> 
        <archive> 
         <manifest> 
          <mainClass>com.my.StandAloneApp</mainClass> 
         </manifest> 
        </archive> 
       </configuration> 
       <executions> 
        <execution> 
         <id>create-my-bundle</id> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
         <configuration> 
          <descriptors> 
           <descriptor>eksport-assembly.xml</descriptor> 
          </descriptors> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Die Dateistruktur ist

-projects  
    -mystandaloneapp  
    -src 
     -main 
     -java 
      -com 
      -my 
       -db 
       -EntityConsumer 
     -resources 
      -WEB-INF 
      -persistence.xml 
    -my_entities  
    -src 
     -main 
     -java 
      -com 
      -my 
       -model 
       -db 
        -MyEntity 
     -resources 
      -WEB-INF 
      -persistence.xml 
+1

teilen Sie Ihre Pom bitte – Francesco

+1

und dann erwähnen Sie die Datei la Yout, denn ohne solche Informationen wäre es die Kristallkugel –

+0

mit Pom-Datei und Dateistruktur aktualisiert. –

Antwort