Java Envers AuditReader读卡器失败
当我使用enver reader时,我有一个错误,db上的审计工作正常,但是当我需要创建reader时,我得到了错误 这是一行: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
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();
}