Java Spring:出现错误“未知属性子元素:<util:constant>”
Posted
技术标签:
【中文标题】Java Spring:出现错误“未知属性子元素:<util:constant>”【英文标题】:Java Spring: getting error " Unknown property sub-element: <util:constant>" 【发布时间】:2012-05-18 09:47:16 【问题描述】:我正在尝试对 ioc 使用 util:constant 标签,但收到以下错误消息:
线程“主”org.springframework.beans.factory.BeanDefinitionStoreException 中的异常:注册类路径资源 [spring.xml] 中定义的名称为“threadPoolExecutor”的 bean 时出错:未知属性子元素:
这是我的 xml:
<?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.1.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:config.properties</value>
</property>
</bean>
<bean id="main" class="pikefin.Main">
<property name="executorSample" ref="executorSample"/>
</bean>
<bean id="executorSample" class="pikefin.ExecutorSample">
<constructor-arg ref="threadPoolExecutor" />
</bean>
<bean id="threadPoolExecutor" class="java.util.concurrent.ThreadPoolExecutor">
<constructor-arg index="0" value="2"/>
<constructor-arg index="1" value="2"/>
<constructor-arg index="2" value="10"/>
<constructor-arg index="3"><util:constant static-field="java.util.concurrent.TimeUnit.SECONDS"/></constructor-arg>
<constructor-arg index="4" ref="arrayBlockingPool"/>
</bean>
<bean id="arrayBlockingPool" class="java.util.concurrent.ArrayBlockingQueue">
<constructor-arg value="5"/>
</bean>
</beans>
更新:
这是我添加了 <value>
标记的 xml,这会导致不同的错误消息:
发现以元素 'util:constant' 开头的无效内容。此时不需要子元素。
(旁注:由于某种原因,我的格式控件在 SO 中发布时消失了)
类路径:config.properties 属性> 豆>豆> 豆> 值> 豆> 豆>
【问题讨论】:
【参考方案1】:对于枚举,您可以直接分配值,Spring 会负责将其绑定到正确的枚举:
<constructor-arg index="3" value="SECONDS">
另外,您的原始条目非常适合我:
<bean id="threadPoolExecutor" class="java.util.concurrent.ThreadPoolExecutor">
<constructor-arg index="0" value="2"/>
<constructor-arg index="1" value="2"/>
<constructor-arg index="2" value="10"/>
<constructor-arg index="3"><util:constant static-field="java.util.concurrent.TimeUnit.SECONDS"/></constructor-arg>
<constructor-arg index="4" ref="arrayBlockingPool"/>
</bean>
【讨论】:
我想知道我的以上是关于Java Spring:出现错误“未知属性子元素:<util:constant>”的主要内容,如果未能解决你的问题,请参考以下文章
我的 spring-boot 2.x 项目出现运行时错误(java.lang.AbstractMethodError),如以下消息
spring-boot跟整合mapper出现如下错误,盼望高手解答
Java Spring用properties配置数据库连接池出现错误的处理方法[图]
Spring 问题:出现意外错误(类型=未找到,状态=404)
当我从另一个调用接口方法时,Spring Boot(Java)中出现以下错误
向spring发送带有请求的ajax数组时,出现错误java.lang.NumberFormatException: For input string: ""