私は次のSpringBean構成を持っています
<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つしかないため、これがあいまいな理由はわかりません。助けていただければ幸いです。
見つかりました このリンク 何が起こっているかを説明しています。 引数インデックスが指定されていない場合、springはタイプごとに引数を照合しますであることがわかります。この場合、springは私の単一のString引数を受け取り、それをJava.io.Fileコンストラクターに渡します。このコンストラクターは[〜#〜] two [〜#〜]文字列を受け取ります。これは、constructor-argインデックスを指定することで修正できます。
<bean id="fileBean" class="Java.io.File">
<constructor-arg index="0"
type="Java.lang.String"
value="$prop{file.path.property}" />
</bean>
ここでちょうど私の2セント:私は今日まったく同じ問題を抱えていました。 SpringがXML構成を読み取って、必要なすべてのBeanを生成できるかどうかを確認する単体テストがあります。間違ったXMLファイルを編集していたために失敗していました。ソース管理からの正しいバージョンではなく、Antビルドからの「dist」バージョンを編集していました。
教訓:これらのSpring例外メッセージを(XMLファイルパスを使用して)読んでください非常に密接に!