2016-08-09 7 views
1

У меня есть ошибки, когда я использую читатель Энвера, аудит на БД работает отлично, но когда мне нужно создать читатель я получаю ошибку ..Envers AuditReader читатель не в состоянии

это линия:

reader.isEntityClassAudited(App_UserDto.class); 

Где App_UserDto имеет тег @Audited.

причина этой ошибки:

java.lang.NoSuchMethodError: javassist.util.proxy.ProxyFactory.isProxyClass(Ljava/lang/Class;)Z 
    org.hibernate.envers.internal.tools.EntityTools.getTargetClassIfProxied(EntityTools.java:78) 
    org.hibernate.envers.internal.reader.AuditReaderImpl.isEntityClassAudited(AuditReaderImpl.java:298) 
    cl.sw.appCenter.sys.audit.AuditLectura.getUserAuditado(AuditLectura.java:31) 
    cl.sw.struts.sys.action.UsuariosAction.usuariosLista(UsuariosAction.java:80) 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    java.lang.reflect.Method.invoke(Unknown Source) 
    ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:870) 
    ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1293) 
    ............ 

App_UserDto:

@Entity 
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED) 
@NamedQueries({ 
    @NamedQuery(name="user.getUserByUser", 
       query="FROM App_UserDto WHERE user = :user"), 
}) 
@Table(name = "APP_USER") 
public class App_UserDto implements DTO{ 

    private static final long serialVersionUID = 1L; 

    @Id @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="gen_USERS") 
    @SequenceGenerator(name="gen_USERS", sequenceName = "SEQ_APP") 
    @Column(name="ID",nullable = false) 
    private int id; 

    @Column(name="NOMBRE") 
    private String nombre; 

    @Column(name="APELLIDO") 
    private String apellido; 

    @Column(name="USUARIO") 
    private String user; 

    @Column(name="CLAVE") 
    private String clave; 

    @Column(name="ACTIVO", insertable=false) 
    private String activo; 

    @Column(name="EMAIL") 
    private String email; 

    @Column(name="FONO") 
    private String fono; 

    @ManyToOne(fetch=FetchType.EAGER) 
    @JoinColumn(name="ID_PERFIL",nullable=true) 
    private App_PerfilDto perfil; 
    ..... 

pom.xml

... 
<dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>5.0.10.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-envers</artifactId> 
     <version>5.0.10.Final</version> 
    </dependency> 
... 

любой предложение приемлемо?

мой DTO .. ​​здесь.

public interface DTO extends Serializable{ 

    public String getRegistro(); 
    public void cleanRegistro(); 

} 
+0

Можете ли вы обновить свой вопрос с помощью интерфейса DTO случайно? – Naros

+0

Привет, спасибо за вопрос .... да, конечно – Teno

+0

Какая версия javassist находится на вашем пути к классу? Похоже, это может быть несоответствие, поэтому вы получаете эту проблему. – Naros

ответ

0

Fixed: В моей библиотеке Maven есть две версии javassist.jar, один из Hibernate и других в Struts2-ядра, удалила Struts 2, и она работала.