2011-09-06 10 views
14

は私が次のエラーエラータイプはjava.io.File [あいまいなコンストラクタ引数の型]

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? 

を取得しています

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

次のSpring Beanの設定がありますしているとのBeanを作成するとき単一のStringパラメータを持つjava.io.File用のコンストラクタが1つしかないため、なぜこれがあいまいであるのかわかりません。どんな助けもありがたい。

答えて

26

見つかったところでは、何が起きているのかを説明しているthis linkが見つかりました。が指定されていない場合、スプリングはタイプによって引数と一致します。この場合、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> 
4

ここで私はちょうど私の2セント:私はまったく同じ問題を抱えていました。私はSpringが自分のXML設定を読み込み、すべての必要なBeanを生成できるかどうかをチェックするユニットテストをしています。間違ったXMLファイルを編集していたために失敗しました。ソース管理からの正しいバージョンではなく、Antビルドから "dist"バージョンを編集していました。

習得した教訓:XMLファイルパスを使用したこれらの春の例外メッセージを読む非常に近い

+0

同じことが起こったが、例外は私が編集していた別のXMLファイルにあることが判明した –

関連する問題