Error with two persistence units: java.lang.RuntimeException: javax.annotation.processing.FilerException:

0

When compiling and executing in the IDE the application works well but when generating the jar it generates this error:

An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
java.lang.RuntimeException: javax.annotation.processing.FilerException: Attempt to recreate a file for type howdenwacolda.entidades.Roles_
    at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:407)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
    at com.sun.tools.javac.main.Main.compile(Main.java:523)
    at com.sun.tools.javac.main.Main.compile(Main.java:381)
    at com.sun.tools.javac.main.Main.compile(Main.java:370)
    at com.sun.tools.javac.main.Main.compile(Main.java:361)
    at com.sun.tools.javac.Main.compile(Main.java:56)
    at com.sun.tools.javac.Main.main(Main.java:42)
Caused by: javax.annotation.processing.FilerException: Attempt to recreate a file for type howdenwacolda.entidades.Roles_
    at com.sun.tools.javac.processing.JavacFiler.checkNameAndExistence(JavacFiler.java:522)
    at com.sun.tools.javac.processing.JavacFiler.createSourceOrClassFile(JavacFiler.java:396)
    at com.sun.tools.javac.processing.JavacFiler.createSourceFile(JavacFiler.java:378)
    at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.generateCanonicalModelClass(CanonicalModelProcessor.java:98)
    at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.generateCanonicalModelClasses(CanonicalModelProcessor.java:226)
    at org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor.process(CanonicalModelProcessor.java:403)
    ... 13 more
C:\Users\Priojects\Documents\NetBeansProjects\HowdenWacolda\nbproject\build-impl.xml:955: The following error occurred while executing this line:
C:\Users\Priojects\Documents\NetBeansProjects\HowdenWacolda\nbproject\build-impl.xml:295: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 3 seconds)

and this is my persistence.xml file

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" 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">
  <persistence-unit name="HowdenWacoldaPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>howdenwacolda.entidades.AutorizadoRamos</class>
    <class>howdenwacolda.entidades.Ramos</class>
    <class>howdenwacolda.entidades.TipoIntermediario</class>
    <class>howdenwacolda.entidades.Empleados</class>
    <class>howdenwacolda.entidades.IndicadorVinculacion</class>
    <class>howdenwacolda.entidades.EstadoAutorizacion</class>
    <class>howdenwacolda.entidades.AutorizadoRamos</class>
    <class>howdenwacolda.entidades.TipoIdentificacion</class>
    <class>howdenwacolda.entidades.Roles</class>
    <class>howdenwacolda.entidades.Usuarios</class>
    <properties>
      <property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://localhost:1433;databaseName=SucisHowdenWacolda"/>
      <property name="javax.persistence.jdbc.user" value="sa"/>
      <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
      <property name="javax.persistence.jdbc.password" value="P@ssw0rd"/>
    </properties>
  </persistence-unit>
  <persistence-unit name="HowdenWacoldaPU2" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>howdenwacolda.entidades.AutorizadoRamos</class>
    <class>howdenwacolda.entidades.Empleados</class>
    <class>howdenwacolda.entidades.EstadoAutorizacion</class>
    <class>howdenwacolda.entidades.IndicadorVinculacion</class>
    <class>howdenwacolda.entidades.Ramos</class>
    <class>howdenwacolda.entidades.Roles</class>
    <class>howdenwacolda.entidades.TipoIdentificacion</class>
    <class>howdenwacolda.entidades.TipoIntermediario</class>
    <class>howdenwacolda.entidades.Usuarios</class>
    <properties>
      <property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://localhost:1433;databaseName=SucisHowdenWacolda"/>
      <property name="javax.persistence.jdbc.user" value="sa"/>
      <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
      <property name="javax.persistence.jdbc.password" value="P@ssw0rd"/>
    </properties>
  </persistence-unit>
</persistence>

I appreciate your help, I've been around for a while now.

    
asked by Sebastian Albornoz 20.09.2017 в 03:25
source

2 answers

1

I already found the solution, it was to add a new property to each persistence unit "HowdenWacoldaPU", for the first add

<property name="eclipselink.canonicalmodel.subpackage" value="dev"/>

and for the second persistence unit "HowdenWacoldaPU2"

 <property name="eclipselink.canonicalmodel.subpackage" value="prod"/>


<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" 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">
  <persistence-unit name="HowdenWacoldaPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>howdenwacolda.entidades.AutorizadoRamos</class>
    <class>howdenwacolda.entidades.Ramos</class>
    <class>howdenwacolda.entidades.Roles</class>
    <class>howdenwacolda.entidades.Empleados</class>
    <class>howdenwacolda.entidades.TipoIdentificacion</class>
    <class>howdenwacolda.entidades.IndicadorVinculacion</class>
    <class>howdenwacolda.entidades.EstadoAutorizacion</class>
    <class>howdenwacolda.entidades.TipoIntermediario</class>
    <class>howdenwacolda.entidades.Usuarios</class>
    <properties>
      <property name="eclipselink.canonicalmodel.subpackage" value="dev"/>
      <property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://localhost:1433;databaseName=SucisHowdenWacolda"/>
      <property name="javax.persistence.jdbc.user" value="sa"/>
      <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
      <property name="javax.persistence.jdbc.password" value="P@ssw0rd"/>
    </properties>
  </persistence-unit>
  <persistence-unit name="HowdenWacoldaPU2" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>howdenwacolda.entidades.Ramos</class>
    <class>howdenwacolda.entidades.Roles</class>
    <class>howdenwacolda.entidades.Empleados</class>
    <class>howdenwacolda.entidades.TipoIdentificacion</class>
    <class>howdenwacolda.entidades.IndicadorVinculacion</class>
    <class>howdenwacolda.entidades.AutorizadoRamos</class>
    <class>howdenwacolda.entidades.EstadoAutorizacion</class>
    <class>howdenwacolda.entidades.TipoIntermediario</class>
    <class>howdenwacolda.entidades.Usuarios</class>
    <properties>
      <property name="eclipselink.canonicalmodel.subpackage" value="prod"/>
      <property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://localhost:1433;databaseName=SucisHowdenWacoldaDos"/>
      <property name="javax.persistence.jdbc.user" value="sa"/>
      <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
      <property name="javax.persistence.jdbc.password" value="P@ssw0rd"/>
    </properties>
  </persistence-unit>
</persistence>

in addition to the amount of error I generated ( import howdenwacolda.entidades.Usuarios_; ) change it to import howdenwacolda.entidades.dev.Usuarios_;

    
answered by 20.09.2017 в 23:56
0

entering the entity classes for each persistence unit manually should not include the same class in more than one persistence unit, this should solve your problem because the error is due to that.

    
answered by 20.09.2017 в 04:22