0

環境 - JBoss 5.1、Spring 3.1.2、JDK 1.5

リストを自動配線しようとしています。ここでの議論によると、 util スキーマを使用してリストを自動配線すると NoSuchBeanDefinitionException が発生し、@Resourceは JBoss では機能しません。

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

@Inject
private List<String> reportTypes;

@Inject も使用してみましたが、同じ例外が発生します。何が欠けていますか?

ここで言及されているように、@Inject に JSR 330、com.springsource.javax.inject-0.9.0.PFD.jar ファイルを使用していますhttp://forum.springsource.org/showthread.php?78737-JSR-330-Inject -春-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)
4

1 に答える 1

0

私はこの問題と数回戦ってきました。@Inject @Named ペアを使用するようになったという事実以外に、あなたの質問に対する正確な答えはありません。それはほとんどの場合うまくいくようです。

@Resource が機能しない理由は、私の知る限り、jboss 自体のせいではなく、jboss にバンドルされている tomcat のバージョンのせいです。

于 2013-02-07T22:41:23.680 に答える