org.springframework.expression.spel.SpelEvaluationException: EL1005E:(pos 0): Type cannot be found

简介:



今天在完成Spring项目的时候遇到了一个类似于下面的异常:

10.03.2010 13:53:53 org.apache.catalina.core.StandardWrapperValve invoke
SCHWERWIEGEND: Servlet.service() for servlet default threw exception
org.springframework.expression.spel.SpelEvaluationException: EL1005E:(pos 0): Type cannot be found 'com.example.Comparison.Operator'
    at org.springframework.expression.spel.support.StandardTypeLocator.findType(StandardTypeLocator.java:79)
    at org.springframework.expression.spel.ExpressionState.findType(ExpressionState.java:136)
    at org.springframework.expression.spel.ast.TypeReference.getValueInternal(TypeReference.java:45)
    at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:52)
    at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:93)
    at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:88)
    at org.springframework.web.servlet.tags.EvalTag.doEndTag(EvalTag.java:118)

大致描述一下场景:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
       http://www.springframework.org/schema/util 
       http://www.springframework.org/schema/util/spring-util.xsd">


    <util:map id="contractQueryStrategyHolder">
        <entry key="#{T(com.example.Comparison.Operator).xxx}" value-ref="bbbb" />
    </util:map>

</beans>

Operator为Comparison的内部类。后来启动失败就出现上面的异常。解决方案其实很简单,只需要把配置修改为下面的就好:

    <util:map id="contractQueryStrategyHolder">
        <entry key="#{T(com.example.Comparison$Operator).xxx}" value-ref="bbbb" />
    </util:map>

==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/p/3928169.html,如需转载请自行联系原作者

相关文章
|
缓存 API 网络安全
钉钉创建审批实例失败可能有以下几个原因
钉钉创建审批实例失败可能有以下几个原因【1月更文挑战第6天】【1月更文挑战第30篇】
1519 2
|
NoSQL Java Redis
Spring boot整合Redis实现发布订阅(超详细)
Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收信息。微信,微博,关注系统 Redis客户端可以订阅任意数量的频道
10061 0
Spring boot整合Redis实现发布订阅(超详细)
|
JSON 移动开发 应用服务中间件
调用Feign接口报错:JSON parse error:Illegal character ((CTRL-CHAR, code 31))
调用Feign接口报错:JSON parse error:Illegal character ((CTRL-CHAR, code 31))
4341 0
调用Feign接口报错:JSON parse error:Illegal character ((CTRL-CHAR, code 31))
|
人工智能 供应链 算法
创新场景丨从数字化到智能化,中远海科“航运新基建”探路
随着数据治理和 AI 大模型应用深入,船视宝日趋完善,开始发挥航运业数智新底座的作用,距离中远海科的愿景也更近一步。
|
9月前
|
人工智能 PyTorch Linux
GLM-4V-9B 视觉多模态模型本地部署教程【保姆级教程】
本教程详细介绍如何在Linux服务器上本地部署智谱AI的GLM-4V-9B视觉多模态模型,涵盖环境配置、模型下载、推理代码及4-bit量化、vLLM加速等优化方案,助力高效实现图文理解与私有化应用。
2287 2
|
安全 Unix Java
linux中kill -9和kill -15区别
在 Linux/Unix 系统中,`kill -9` 和 `kill -15` 是终止进程的常用命令,核心区别在于发送的信号类型不同,导致进程终止行为截然不同。`kill -15`(SIGTERM)允许进程进行清理操作后优雅退出,适用于正常关闭;而 `kill -9`(SIGKILL)则强制终止进程,不给予任何清理机会,仅在进程无响应时使用。本文从信号类型、行为、工作原理及使用建议等方面进行详细对比,帮助你更安全、有效地管理进程。
1839 0
|
Java API 数据安全/隐私保护
Spring Boot中的文件系统操作
Spring Boot中的文件系统操作
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
1896 78
|
关系型数据库 Shell C#
PostgreSQL修改最大连接数
在使用PostgreSQL时,可能遇到“too many clients already”错误,这是由于默认最大连接数(100)不足。要增加此数值,需修改`postgresql.conf`中的`max_connections`参数
2037 5
|
消息中间件 存储 缓存
超全面Java中的队列(Queue)
Java中的`Queue`接口位于`java.util`包,继承自`Collection`,用于存储待处理的元素,通常遵循FIFO原则。它包含`add`、`offer`、`poll`等方法,支持多种实现类,如`LinkedList`、`PriorityQueue`、`ArrayDeque`、`ConcurrentLinkedQueue`及`BlockingQueue`系列。
1185 0