Fui tentar implementar a auditoria e vi este projeto hibernate-envers.
Mas ao tentar criar o projeto ele dá este erro:
12:16:45,518 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 50) MSC000001: Failed to start service jboss.persistenceunit."nfse-web.war#netsoft": org.jboss.msc.service.StartException in service jboss.persistenceunit."nfse-web.war#netsoft": java.lang.AbstractMethodError
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:172) [wildfly-jpa-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:117) [wildfly-jpa-8.2.1.Final.jar:8.2.1.Final]
at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.8.0_131]
at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:474)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:182) [wildfly-jpa-8.2.1.Final.jar:8.2.1.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_131]
at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_131]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: java.lang.AbstractMethodError
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:312) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:852) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:845) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:844) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
at org.jboss.as.jpa.hibernate4.TwoPhaseBootstrapImpl.build(TwoPhaseBootstrapImpl.java:44) [jipijapa-hibernate4-3-1.0.1.Final.jar:]
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:154) [wildfly-jpa-8.2.1.Final.jar:8.2.1.Final]
... 8 more
12:16:45,518 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "nfse-web.war")]) - failure description: {"JBAS014671: Failed services" => {"jboss.persistenceunit.\"nfse-web.war#netsoft\"" => "org.jboss.msc.service.StartException in service jboss.persistenceunit.\"nfse-web.war#netsoft\": java.lang.AbstractMethodError
Caused by: java.lang.AbstractMethodError"}}
12:16:45,549 WARN [org.jboss.as.jpa] (Controller Boot Thread) JBAS011411: Unexpected problem gathering statistics: java.lang.IllegalStateException: JBAS011477: Persistence unit 'nfse-web.war#netsoft' is not available
at org.jboss.as.jpa.management.EntityManagerFactoryLookup.entityManagerFactory(EntityManagerFactoryLookup.java:44)
at org.jboss.as.jpa.hibernate4.management.HibernateEntityCacheStatistics.getDynamicChildrenNames(HibernateEntityCacheStatistics.java:72)
at org.jboss.as.jpa.management.DynamicManagementStatisticsResource.getChildren(DynamicManagementStatisticsResource.java:204)
at org.jboss.as.controller.registry.AbstractModelResource$DelegateResource.getChildren(AbstractModelResource.java:254) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.registry.Resource$Tools.readModel(Resource.java:252) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.registry.Resource$Tools.readModel(Resource.java:239) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.registry.Resource$Tools.readModel(Resource.java:225) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.registry.Resource$Tools.readModel(Resource.java:254) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.registry.Resource$Tools.readModel(Resource.java:239) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.registry.Resource$Tools.readModel(Resource.java:225) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.registry.Resource$Tools.readModel(Resource.java:254) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.registry.Resource$Tools.readModel(Resource.java:239) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.registry.Resource$Tools.readModel(Resource.java:225) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.registry.Resource$Tools.readModel(Resource.java:254) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.registry.Resource$Tools.readModel(Resource.java:239) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.registry.Resource$Tools.readModel(Resource.java:225) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.registry.Resource$Tools.readModel(Resource.java:213) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.ModelControllerImpl.writeModel(ModelControllerImpl.java:580) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.OperationContextImpl.createPersistenceResource(OperationContextImpl.java:229) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:543) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:298) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.AbstractOperationContext.finishStep(AbstractOperationContext.java:752) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:727) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:501) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:298) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:293) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.ModelControllerImpl.boot(ModelControllerImpl.java:346) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.AbstractControllerService.boot(AbstractControllerService.java:297) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.server.ServerService.boot(ServerService.java:356) [wildfly-server-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.server.ServerService.boot(ServerService.java:331) [wildfly-server-8.2.1.Final.jar:8.2.1.Final]
at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:259) [wildfly-controller-8.2.1.Final.jar:8.2.1.Final]
at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_131]
Classe modelo:
@Entity
@Table(name = "TB_REGIME_TRIBUTACAO", schema = "CONFIGURACOES", uniqueConstraints = {@UniqueConstraint(columnNames = {"NR_CODIGO"}, name = "U_TB_REGIME_TRIBUTACAO_1")}, indexes = {
@Index(columnList = "ST_REGISTRO", name = "I1_TB_REGIME_TRIBUTACAO"),
@Index(columnList = "NR_CODIGO", name = "I2_TB_REGIME_TRIBUTACAO"),
@Index(columnList = "DS_DESCRICAO", name = "I2_TB_REGIME_TRIBUTACAO")})
@Audited
@AuditTable(schema = "CONFIGURACOES", value = "TB_REGIME_TRIBUTACAO_AUD")
@ExclusaoLogica
public class RegimeTributacaoEntity extends NFSEEntity {
private static final long serialVersionUID = -8437445797289766466L;
private Integer codigo;
private String descricao;
@Override
@Id
@Column(name = "PK_REGIME_TRIBUTACAO")
@SequenceGenerator(name = "CONFIGURACOES.SQ_REGIME_TRIBUTACAO", sequenceName = "CONFIGURACOES.SQ_REGIME_TRIBUTACAO", allocationSize = 1)
@GeneratedValue(generator = "CONFIGURACOES.SQ_REGIME_TRIBUTACAO", strategy = GenerationType.SEQUENCE)
public Long getId() {
return super.getId();
}
@Column(name = "NR_CODIGO", length = 11, nullable = false)
public Integer getCodigo() {
return codigo;
}
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
@Column(name = "DS_DESCRICAO", length = 50, nullable = false)
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
@Transient
public String codigoDescricao() {
return this.codigo.toString().concat(Constantes.TRACO)
.concat(this.descricao);
}
}
Meu pom tem:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
<version>5.2.14.Final</version>
</dependency>
persistence.xml
<?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="netsoft" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<non-jta-data-source>java:/prefeitura-ds</non-jta-data-source>
<class>br.eti.netsoft.nfse.notaFiscal.pagamento.RegimeTributacaoEntity</class>
<properties>
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="false" />
<property name="show_sql" value="true" />
<!-- Configuração do Hibernate Envers -->
<property name="post-insert"
value="org.hibernate.ejb.event.EJB3PostInsertEventListener, org.hibernate.envers.event.EnversListener" />
<property name="post-update"
value="org.hibernate.ejb.event.EJB3PostUpdateEventListener, org.hibernate.envers.event.EnversListener" />
<!-- <property name="post-delete" value="org.hibernate.ejb.event.EJB3PostUpdateEventListener,
org.hibernate.envers.event.EnversListener" /> -->
</properties>
</persistence-unit>
</persistence>
Sem as informações sobre o Hibernate Envers, o projeto sobe normalmente e cria as tabelas no banco de dados.