2013-06-23 12 views
10

Springとコンストラクタインジェクションに問題があります。私は名前(String)と特別なID(long)で動的にオブジェクトを作成したいと思います。Spring <constructor-arg>要素でrefまたは値を指定する必要があります

しかし、spring.xmlファイルがロードされると例外が発生します。 org.springframework.beans.factory.UnsatisfiedDependencyException:スレッド「メイン」java.lang.ExceptionInInitializerError

では

例外による誤差名前のビーンを作成「someBean」クラスパス・リソースに定義されている[春。 xml]:[long]型のインデックス0を持つコンストラクタ引数で表現されている満足度の低い依存関係:あいまいなコンストラクタの引数型 - 正しいBean参照をコンストラクタ引数として指定しましたか?

マイspring.xml:

<bean id="someBean" class="someClass" > 
     <constructor-arg index="0" type="java.lang.String" value=""/>  
     <constructor-arg index="1" type="long" value=""/> 
    </bean> 
</beans> 

だから何が悪いですの?コンストラクタ-argは、あなたがプリミティブ型longと値0、またはラッパー型java.lang.Longと空の値のいずれかを使用することができますコンストラクタ引数では、インデックス1(0でない、例外が言うように)

+1

'type =" java.lang.Long "'で試したことがありますか? – LaurentG

+0

はい、私もそれを試しました。私はインデックスも削除しました。しかし、改善はありません – smsnheck

+1

あなたのコンストラクタが実際にどのように見えるかを共有する必要があります – KNU

答えて

10

を持っています。また、物事を制御するために、私は2番目の引数の値を明示的に0に設定します。

+0

私は値= ""から値= "0"に切り替えました。しかし問題はまだ残っています – smsnheck

+1

'someClass'のコンストラクタのコードをあなたの投稿に追加してください。引数を正しい順序で渡すことは確かですか? – Mikhail

+3

これはかなり恥ずかしいことです。コンストラクタは(id、name)のようで、私は(name、id)を呼び出しました。 – smsnheck

関連する問題