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

Java . lang . illegalargumentexception:无效的布尔值(" $ { com . test . is tenable ")

龙兴学
2023-03-14

导致我获得* *的原因是:org . spring framework . beans . typemismatch异常:无法将“java.lang.String”类型的值转换为所需的“java.lang.Boolean”类型;嵌套异常是Java . lang . illegalargumentexception:* *

我相信这是由于缺少Spring占位符配置。但我已经在应用程序上下文中初始化了bean,但仍然会出现此错误。有人能帮我吗??

    @Value("${com.test.isTestEnable")
    public Boolean isTestEnable;

Spring属性类

public class SpringPropertiesUtil extends PropertyPlaceholderConfigurer {

    private static HashMap<String, String> systemPropertiesMap;

    private int springSystemPropertiesMode = SYSTEM_PROPERTIES_MODE_FALLBACK;

    public static String getProperty(final String name) {
        return systemPropertiesMap.get(name);
    }

    @Override
    protected void processProperties(final ConfigurableListableBeanFactory beanFactory, final Properties props) throws BeansException {
        super.processProperties(beanFactory, props);
        systemPropertiesMap = new HashMap<String, String>();
        for (final Object key : props.keySet()) {
            final String keyStr = key.toString();
            final String valueStr = resolvePlaceholder(keyStr, props, springSystemPropertiesMode);
            systemPropertiesMap.put(keyStr, valueStr);
        }
    }

    @Override
    public void setSystemPropertiesMode(final int systemPropertiesMode) {
        super.setSystemPropertiesMode(systemPropertiesMode);
        springSystemPropertiesMode = systemPropertiesMode;
    }

我的应用程序上下文文件

  <bean id="placeholderConfig" class="com.test.SpringPropertiesUtil">
        <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
        <property name="locations">
            <list>
                <value>file:${config.path}/application.properties</value>
                <value>file:${config.path}/log.properties</value>
            </list>
        </property>
    </bean>

共有2个答案

东郭自强
2023-03-14

尝试更改以下行

@Value("${com.test.isTestEnable")

@Value("#{new Boolean('${com.test.isTestEnable}')}")

运筹学

@Value("#{T(Boolean).parseBoolean('${com.test.isTestEnable}')}")
劳烨
2023-03-14

您的真正问题只是 @Value(“${com.test.isTestEnable”) 处的拼写错误 - 您在表达式末尾缺少一个右大括号 }

这应该完全正常工作:

    @Value("${com.test.isTestEnable}")
    public Boolean isTestEnable;
 类似资料:
  • 在对XML文件应用转换时,我得到了这个错误(即,未定义有效的布尔值)。这里有一个奇怪的陷阱: *我的应用程序从一个文件位置读取500到800个XML文件(XML文件大小范围从几KB到10MB),然后对每个文件进行转换。最初一切都很顺利,但在一些执行之后,它会在错误下面抛出: productsfromloc_v3.xsl: forg0006第651行错误:在xsl:call-template nam

  • 问题内容: 我根据另一个问题编写了一个非常简单的代码,它是: 丢给我一个错误 java.lang.NullPointerException第5和17行 我不知道我在做什么错。 问题答案: 无法自动拆箱为原始值,当您尝试与进行比较时会发生这种情况。在 类型为,因此左侧操作数也必须为。您正在传入,这是一个对象,但可以自动拆箱到。 因此,这相当于 显然,如果是,则以上抛出。 为了避免自动拆箱的隐藏陷阱,

  • 问题内容: 哪种列类型最适合在MySQL数据库中使用布尔值?我用,但我的同事用。 问题答案: 这些数据类型是同义词。

  • Eclipse版本:开普勒服务版本1 内部版本id:20130919-0819 迄今采取的步骤: (1) 已删除。位于目录中的快照文件 (2) 已删除以下目录中的tmp文件夹 (3) 清理项目 (4)通过删除当前服务器重新配置服务器, (5) 为了确保反映更改,每次执行上述步骤后都会重新启动Eclipse。 但是,所有提示 网状物xml文件:

  • 到目前为止我们看到的类型都能表示很大范围的数据,整数多的是,而浮点数更多。相对而言,字符集的规模小的多。C++中还有一个类型表示的范围更小,即布尔类型,它只能表示true和false两个值。 虽然没提到过该类型,但我们前面几章中实际已经使用过布尔值了。if语句和while语句中的条件就是布尔表达式。比较操作符的结果也是布尔值。例如: if (x == 5) { // 进行某些处理 } ==操

  • 原文: http://exploringjs.com/impatient-js/ch_booleans.html 基本类型 _ 布尔 _ 包含两个值 - false和true: > typeof false 'boolean' > typeof true 'boolean' 14.1。转换为布尔值 这三种方法可以将任意值x转换为布尔值。 Boolean(x) 最具描述性;推荐的。 x ?