Java Envers AuditReader读卡器失败

Java Envers AuditReader读卡器失败,java,hibernate,maven,hibernate-envers,Java,Hibernate,Maven,Hibernate Envers,当我使用enver reader时,我有一个错误,db上的审计工作正常,但是当我需要创建reader时,我得到了错误 这是一行: reader.isEntityClassAudited(App_UserDto.class); 其中App_UserDto具有@Audited标记 导致此错误的原因: java.lang.NoSuchMethodError: javassist.util.proxy.ProxyFactory.isProxyClass(Ljava/lang/Class;)Z

当我使用enver reader时,我有一个错误,db上的审计工作正常,但是当我需要创建reader时,我得到了错误

这是一行:

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>
...

修复:在我的Maven库中有两个版本的javassist.jar,一个是Hibernate,另一个是struts2 core,删除了struts2,它就工作了。

修复:在我的Maven库中有两个版本的javassist.jar,一个是Hibernate,另一个是struts2 core,删除了Struts 2,它就起作用了。

你能用DTO界面偶然更新你的问题吗?嗨,谢谢你的提问。。。。当然可以。您的类路径上有什么版本的javassist?看起来可能是不匹配,这就是您遇到此问题的原因。您好,我在maven library 3.1.8.1和3.1.1.0上有两个javassist版本,您能用DTO接口偶然更新您的问题吗?您好,谢谢您的提问。。。。当然可以。您的类路径上有什么版本的javassist?看起来可能是不匹配,这就是您遇到这个问题的原因。您好,maven library 3.1.8.1和3.1.1.0上有两个javassist版本
public interface DTO extends Serializable{

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

}