当前位置: 首页 > 知识库问答 >
问题:

spring@cacheable with Ehcache,spel find null for valid object

西门正平
2023-03-14

我有一个类似的问题,但有时它起作用。所描述的错误只是偶尔发生一次。

我使用的是Spring3.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时/当我使用maven构建eclipse WS并部署到tomcat7时。

当它工作正常时:在它失败一次之后,如果我只需要用一些空格来编辑MailFilterServiceImpl.java,使它在eclipse中重新编译并重新启动tomcat7服务器。

我需要让它在配置项方案中工作。

[更新]设置编译器选项debug:true围绕这个问题工作。优化的似乎没有任何发言权。

<debug>true</debug>
<optimize>true</optimize>

共有1个答案

戚飞
2023-03-14

您的描述清楚地表明了一件事:当您使用javac进行编译时,它是不工作的,但使用Eclipse编译器ECJ可以工作。您可能在没有调试信息的情况下进行编译。

 类似资料:
  • Spring是一个流行的Web框架,可以轻松集成许多常见的Web任务。 所以问题是,当我们拥有Struts2时,为什么我们需要Spring呢? 好吧,Spring不仅仅是一个MVC框架 - 它提供了很多Struts中没有的其他好东西。 例如:依赖注入可以对任何框架有用。 在本章中,我们将通过一个简单的示例来了解如何将Spring和Struts2集成在一起。 首先,您需要将以下文件添加到Spring

  • 作为一个新的Web应用程序项目的一部分,我计划学习Spring。我开始通读Spring框架参考。当我在谷歌上搜索时,我遇到了Spring boot。我所理解的是,Spring boot通过减少配置帮助构建应用程序的速度比Spring快得多。现在我有点困惑,我应该继续学习Spring还是跳转到Spring boot。我的目的是了解Spring作为一个框架是如何工作的,而不是一些特性。所以请让我知道,

  • 我正在研究Spring支持的数据访问技术,我注意到它提到了多个选项,但我不确定它们之间的区别: Spring-DAO(http://docs.spring.io/spring/docs/2.0.8/reference/dao.html) Spring-orm(http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/htm

  • 服务器应为无状态 不能期望客户端存储Cookie。 发送到服务器的凭据不应为纯文本 我是Spring Security的新手,因此如果我能在实现它时得到任何帮助,我将不胜感激。

  • 问题内容: 我正在启动一个新的JSF(2)项目。我意识到纯JSF有一定的局限性,我计划在春季停产。在春季,JSF是一种相对较新的方法(中甚至没有标记spring-faces :-)),jsp是经典方法。 我需要对技术堆栈进行最佳调整。 1)我也需要使用spring网流吗? 2)仅使用spring面(似乎是流的一部分)+spring mvc + JPA是否可行? 3)是否有这种配置的良好示例? 问题

  • 我正在尝试使用WebFlux转换以下方法,以避免在同一方法上使用@Async。 控制器类: startProcess(id)是一种通过webflux进行api调用并返回Mono类型的方法。我感兴趣的是,不管接下来发生什么,调用方都会立即收到ResponseStatus(HttpStatus.OK)。

  • 我很难在Spring MVC项目中使用方面。 作为切入点的方法运行良好,但没有Advise。 下面是启动整个Spring Boot的类,它是spring上下文的根: 下面是带方法的类,即切入点。 下面是我的方面: 编辑2:IntelliJ IDEA告诉我有关方法login和login2:“这个建议没有方法”,但同时,我能够从字符串跳转(通过控制单击),这是批注中的价值,以纠正实现。

  • Spring提供了特殊的类DelegatingVariableResolver,以无缝方式将JSF和Spring集成在一起。 在JSF中集成Spring依赖注入(IOC)功能需要以下步骤。 第1步:添加DelegatingVariableResolver 在faces-config.xml中添加一个variable-resolver条目,指向spring类DelegatingVariableRes