Spring Boot 1.4.0M3에서 실행되는 내 응용 프로그램에서 이상한 문제가 발생합니다. 여기서는 공급자가 Redis 인 Spring 캐시 구현을 사용하고 있는데, 동일한 객체는 classCastException을받을 수 없습니다.java.lang.ClassCastException : DTOObject는 DTOObject로 캐스팅 될 수 없습니다.
내가 데이터베이스로 MongoDB를 사용하고를 주조하고 나는 느리게로드 객체 역할의 목록을 포함하고 역할은 내부적으로 권한
@Document
@Data
public class User implements Serializable{
private String passwordResetToken;
private boolean enabled = false;
@DBRef(lazy= true)
private List<Role> roleList;
}
아래 내 역할 DTO는 다음과 같이처럼 객체가 포함되어 사용자 개체가 될 수
@Data
@Document
public class Role implements Serializable{
private String roleName;
private String description;
@DBRef(lazy= true)
private List<Permission> permissions;
}
내 모든 MVC를로드하는 동안 모든 권한을 호출하는 중입니다. 반복적 인 작업이므로 결과를 캐싱하고 redis를 사용하여 역할 값을로드하는 동안 예외가 발생합니다.
raised java.lang.ClassCastException: com.learning.securedapp.domain.Permission cannot be cast to com.learning.securedapp.domain.Permission
이 오류를 극복하도록 도와주세요.
내 프로젝트에 source code를 부착하고 메뉴가 지금 클릭 나는 역할에서 다음 역할 메뉴를 응용 프로그램에 대한 해당 지역의 환경 로그인에 복제 및 권한 메뉴를 클릭하고 RoleController.java
의 91에서 오류가 발생 위의 오류가 발생합니다.
클래스가 다른 클래스 로더에 의해 두 번로드되는 경우 jvm은 클래스가 부동 클래스로 간주됩니다. 나는 너에게 무슨 일이 일어나고 있는지 추측한다. – joshiste
war 파일을 사용하는 것처럼 보입니다. 문제는 아마도 동일한 클래스의 여러 버전이로드 된 응용 프로그램 컨테이너에있는 것일 수 있습니다. – Magnus
나는 ide에서 실행 중이며 한 버전의 권한 클래스 만 볼 수 있습니다. – rajadilipkolli