0

我正在尝试使用 spring 配置注入值:但我收到此错误

Could not resolve matching constructor (hint: specify index/type/name arguments for simple parameters to avoid type ambiguities)

Spring 代码片段是:

<bean id="Pool" class="org.apache.commons.pool.impl.GenericKeyedObjectPool">
        <constructor-arg name = "factory" ref="xyzFactory" />
        <constructor-arg type = "int" name = "maxActive" value='3' />
        <constructor-arg type= "byte" name = "whenExhaustedAction" value='WHEN_EXHAUSTED_GROW' />       
        <constructor-arg type = "long" name = "maxWait" value='3000' />
        <constructor-arg type = "int" name = "maxIdle" value='3' />
        <constructor-arg name = "testOnBorrow" value='true' />
        <constructor-arg name = "testOnReturn" value='true' />
    </bean>

请指教?

4

2 回答 2

1

有了这个

<constructor-arg type= "byte" name = "whenExhaustedAction" value='WHEN_EXHAUSTED_GROW' />       

Spring 将尝试将String值转换"WHEN_EXHAUSTED_GROW"为 abyte并失败。

你应该可以使用<util:constant>

<constructor-arg type= "byte" name = "whenExhaustedAction" />     
    <util:constant static-field="org.apache.commons.pool.impl.GenericKeyedObjectPool.WHEN_EXHAUSTED_GROW"/>
</constructor-arg>

解析static字段的值。不要忘记将相应的命名空间添加到您的 xml 上下文中。


请保持一致并在属性值上使用双引号。

于 2013-09-17T17:00:36.863 回答
0

几件事要检查:

WHEN_EXHAUSTED_GROW 是一个字节值吗?看起来不像,也许那需要是一个引用的bean或其他东西

<constructor-arg name = "testOnBorrow" value='true' />
<constructor-arg name = "testOnReturn" value='true' />

添加type=boolean到这些

并检查 xyz 工厂是否正确执行KeyedPoolableObjectFactory

于 2013-09-17T16:43:25.683 回答