14

私は次の春の豆の構成を持っています

  <bean id="fileBean" class="java.io.File">
    <constructor-arg type="java.lang.String" 
                     value="$prop{file.path.property}" />    
  </bean>

次のエラーが発生します

org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'fileBean' defined in class path resource [context.xml]:  
Unsatisfied dependency expressed through constructor argument with index 0 of type
[java.net.URI]: Ambiguous constructor argument types - did you specify the correct 
bean references as constructor arguments?

単一のStringパラメーターを持つjava.io.Fileのコンストラクターは1つしかないため、これがあいまいな理由はわかりません。助けていただければ幸いです。

4

2 に答える 2

26

何が起こっているのかを説明するこのリンクを見つけました。引数インデックスが指定されていない場合、springはタイプごとに引数と一致することがわかります。この場合、springは私の単一のString引数を受け取り、それを2つの文字列を受け取るjava.io.Fileコンストラクターに渡します。これは、constructor-argインデックスを指定することで修正できます。

<bean id="fileBean" class="java.io.File">
  <constructor-arg index="0"
                   type="java.lang.String" 
                   value="$prop{file.path.property}" />    
</bean>
于 2011-09-06T23:21:59.987 に答える
5

ここにちょうど私の2セント:私は今日まったく同じ問題を抱えていました。SpringがXML構成を読み取って、必要なすべてのBeanを生成できるかどうかを確認する単体テストがあります。間違ったXMLファイルを編集していたために失敗していました。ソース管理からの正しいバージョンではなく、Antビルドからの「遠い」バージョンを編集していました。

教訓:これらのSpring例外メッセージ(XMLファイルパスを含む)をよく読んでください

于 2014-05-19T10:04:20.903 に答える