2012-11-29 20 views
0

信封 - JBoss的5.1,春季3.1.2,JDK 1.5JBoss的 - 自動裝配清單 - @Resource,@注入拋出NoSuchBeanDefinitionException

我想自動裝配清單。根據這裏的討論Auto-wiring a List using util schema gives NoSuchBeanDefinitionException,@Resource不適用於JBoss。

<util:list id="reportTypes"> 
    <value>PDF</value> 
    <value>CSV</value> 
    <value>XML</value> 
</util:list> 

@Inject 
private List<String> reportTypes; 

我也試過使用@Inject,但是我得到了同樣的異常。我錯過了什麼?

我使用@注入的JSR 330,com.springsource.javax.inject-0.9.0.PFD.jar文件中使用這裏提到http://forum.springsource.org/showthread.php?78737-JSR-330-Inject-Spring-3-0

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No matching bean of type [java.lang.String] found for dependency 
[collection of java.lang.String]: expected at least 1 bean which qualifies as autowire 
candidate for this dependency. Dependency annotations: {@javax.inject.Inject()} 

編輯

@Resource(name = "reportTypes") 
private List<String> reportTypes; 

拋出

java.lang.RuntimeException: mapped-name is required for reportTypes of deployment app.war 
at org.jboss.web.tomcat.service.injection.WebResourceHandler.loadXmlResourceEnvRefs(WebResourceHandler.java:287) 
at org.jboss.web.tomcat.service.injection.WebResourceHandler.loadXml(WebResourceHandler.java:325) 
at org.jboss.web.tomcat.service.TomcatInjectionContainer.processMetadata(TomcatInjectionContainer.java:550) 
at org.jboss.web.tomcat.service.WebCtxLoader.start(WebCtxLoader.java:158) 
+0

你確定'@ Resource'不起作用嗎? – axtavt

+0

使用@Resource,我得到java.lang.RuntimeException:mapped-name是...部署所需的.... .war。 http://stackoverflow.com/questions/10105155/jboss-5-1-spring-resource-annotation-not-working –

+0

以下應該工作得很好: @Resource(name =「reportTypes」) private列表 reportTypes; –

回答

0

我已經與這名p作戰我自己幾次。除了我已經轉向使用@Inject @Named對之外,我沒有對您的問題的確切答案。這似乎在大多數時間都有效。

據我所知,@Resource不起作用的原因不是jboss本身的錯,而是jboss捆綁的tomcat版本的錯誤。

相關問題