[SPRING] @ Cacheable with Ehcache, 유효한 객체에 대해 null을 찾습니다.
SPRING@ Cacheable with Ehcache, 유효한 객체에 대해 null을 찾습니다.
나는 비슷한 문제를 가지고 있지만 가끔은 효과가있다. 설명 된 오류는 한 번만 발생합니다.
나는 봄 3.2.5와 ehcache 2.6.5를 사용하고있다.
예외 추적 :
org.springframework.expression.spel.SpelEvaluationException: EL1007E:(pos 0): Field or property 'applicationID' cannot be found on null
at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:213)
at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:85)
at org.springframework.expression.spel.ast.PropertyOrFieldReference.access$000(PropertyOrFieldReference.java:43)
at org.springframework.expression.spel.ast.PropertyOrFieldReference$AccessorLValue.getValue(PropertyOrFieldReference.java:346)
at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:82)
at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:93)
at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:89)
at org.springframework.cache.interceptor.ExpressionEvaluator.key(ExpressionEvaluator.java:95)
at org.springframework.cache.interceptor.CacheAspectSupport$CacheOperationContext.generateKey(CacheAspectSupport.java:452)
at org.springframework.cache.interceptor.CacheAspectSupport.inspectCacheables(CacheAspectSupport.java:281)
at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:199)
at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy85.getMailOrigin(Unknown Source)
at com.myApplication.MailFilterServiceImpl.isValid(ApplicationServiceImpl.java:134)
내 캐싱 코드는 다음과 같습니다.
MailFilterServiceImpl
@Cacheable(value="mailClientsCache", key="#mb.applicationID")
public MailClientBean getMailOrigin(MailBean mb){}
이 경우 : 내가 jenkins를 빌드하고 tomcat7에 autodeploy하도록 설정했을 때 / maven을 사용하여 Eclipse WS에서 빌드하고 Tomcat7에 배포 할 때.
이것이 완벽하게 작동 할 때 : 한 번 실패한 후, MailFilterServiceImpl.java를 일부 공백으로 편집하여 이클립스에서 다시 컴파일하고 tomcat7 서버를 다시 시작하십시오.
나는 그것을 CI 시나리오에서 작동시킬 필요가있다.
[최신 정보] 컴파일러 옵션 debug : true를 설정하면이 문제가 해결됩니다. 최적화 된 doesnt에는 어떤 말도있는 것처럼 보인다.
<debug>true</debug>
<optimize>true</optimize>
해결법
-
==============================
1.당신의 설명은 한 가지 명확한 것입니다 : javac로 컴파일 할 때 작동하지 않지만 Eclipse 컴파일러 ecj에서 작동합니다. 디버깅 정보없이 컴파일 할 수 있습니다.
당신의 설명은 한 가지 명확한 것입니다 : javac로 컴파일 할 때 작동하지 않지만 Eclipse 컴파일러 ecj에서 작동합니다. 디버깅 정보없이 컴파일 할 수 있습니다.
from https://stackoverflow.com/questions/24301074/spring-cacheable-with-ehcache-spel-find-null-for-valid-object by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 대 EJB. Spring이 EJB를 대체 할 수 있습니까? [닫은] (0) | 2019.01.07 |
---|---|
[SPRING] 봄 데이터 JPA - 개체를 반환하는 가장 좋은 방법은? (0) | 2019.01.07 |
[SPRING] BeanCreationException : 'springApplicationAdminRegistrar'라는 이름의 빈을 만드는 동안 오류가 발생했습니다. InstanceAlreadyExistsException (0) | 2019.01.07 |
[SPRING] 런타임에서 메일 구성 변경 (0) | 2019.01.07 |
[SPRING] 배열에서 일치하는 요소를 봄 mongodb에서 검색하는 방법은 무엇입니까? (0) | 2019.01.07 |