[SPRING] SpelEvaluationException : EL1007E : (pos 43) : 'group'필드 또는 속성을 null에서 찾을 수 없습니다.
SPRINGSpelEvaluationException : EL1007E : (pos 43) : 'group'필드 또는 속성을 null에서 찾을 수 없습니다.
내 웹 응용 프로그램에 대해 완전히 SPRING METHOD 보안을 구성했습니다. (PRE / POST 어노테이션 사용).
그러나 최근에는 그들과 이상한 문제가 발생했습니다. 요약은 다음과 같습니다.
완전히 채워진 GroupMembership 개체 (적절한 사용자 및 그룹 구성이 있음)를 전달하면 보안 필터가 다음 예외를 throw합니다.
errorMessage: "Failed to evaluate expression
canIEditGroupProfile(#membership.group.id)'"
예외를 파헤 치자 :
그 원인은 다음과 같다.
org.springframework.expression.spel.SpelEvaluationException:
EL1007E:(pos 33): Field or property 'group' cannot be found on null
같은 문제를 해결하기위한 지침을 제공하십시오.
해결법
-
==============================
1.getter / setters는 괜찮아 보인다 ... null도 없다.
getter / setters는 괜찮아 보인다 ... null도 없다.
그러나 흥미로운 관찰; 이 하나는 내게 오류를 준다 :
@PreAuthorize("canIEditGroupProfile(#membership.group.id)") public int updateGroupMembership(GroupMembership membership) throws GroupsServiceException;
이것은 잘 작동합니다.
@PreAuthorize("canIEditGroupProfile(#groupmembership.group.id)") public int updateGroupMembership(GroupMembership groupmembership) throws GroupsServiceException;
또한 처음에는 매개 변수 이름이 일치하지 않습니다 (즉, Service 및 ServiceImpl 둘 다 다른 매개 변수 이름을 가짐).
이제 일관성을 유지하면서 문제는 해결 된 것 같습니다.
-
==============================
2.스프링 부트 애플리케이션에서 같은 문제가 발생했습니다. 위의 설명에서 언급했듯이 디버그 기호 정보없이 컴파일하고있는 것으로 나타났습니다. 나는이 문제를 두 가지 방법으로 해결할 수 있다고 말하고 싶다.
스프링 부트 애플리케이션에서 같은 문제가 발생했습니다. 위의 설명에서 언급했듯이 디버그 기호 정보없이 컴파일하고있는 것으로 나타났습니다. 나는이 문제를 두 가지 방법으로 해결할 수 있다고 말하고 싶다.
1. (내가 제일 좋아하는) : 단지 이것을 pom.xml -> 플러그인에 포함하십시오.
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <compilerArgument>-parameters</compilerArgument> <testCompilerArgument>-parameters</testCompilerArgument> </configuration> </plugin>
나는이 문제에 대해 더 많이 알기 위해이 링크를 정말 흥미롭게 발견했다.
희망이 도움이됩니다!
-
==============================
3.@zeroflagL Ask : 디버그 정보없이 컴파일하고 있습니까? 이것은 Spring @ Cacheable with Ehcache와 같은 문제 일 가능성이 높습니다. spel은 유효한 객체에 대해 null을 찾고 SpEL 키로 Spring @Cacheable을 찾습니다. 항상 null로 평가됩니다. 디버그 구성에 대해 POM (또는 Eclipse 구성 또는 무엇이든)을 확인하십시오. 예 : debug> false debug>를 maven-compiler-plugin에 추가하십시오.
@zeroflagL Ask : 디버그 정보없이 컴파일하고 있습니까? 이것은 Spring @ Cacheable with Ehcache와 같은 문제 일 가능성이 높습니다. spel은 유효한 객체에 대해 null을 찾고 SpEL 키로 Spring @Cacheable을 찾습니다. 항상 null로 평가됩니다. 디버그 구성에 대해 POM (또는 Eclipse 구성 또는 무엇이든)을 확인하십시오. 예 : debug> false debug>를 maven-compiler-plugin에 추가하십시오.
from https://stackoverflow.com/questions/22959459/spelevaluationexception-el1007epos-43-field-or-property-group-cannot-be-f by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 나머지와 함께 부울 값을 반환하는 방법? (0) | 2019.03.30 |
---|---|
[SPRING] @Transactional in Spring + 최대 절전 모드 (0) | 2019.03.30 |
[SPRING] SpringSource IDE는 프로젝트 이름을 Spring MVC 애플리케이션의 루트 URL로 사용하지 않는다. (0) | 2019.03.30 |
[SPRING] redis로 Spring의 캐시 추상화를 사용하여 다중 캐시 저장소를 생성 할 수 있습니까? (0) | 2019.03.30 |
[SPRING] 초기 뷰 호출에서 Angular JS의 Spring MVC에서 데이터 가져 오기 (0) | 2019.03.30 |