2013-06-23 15 views
10

Spring ve constructor injection ile ilgili bir sorun yaşıyorum. Bir ad (String) ve özel kimlik (long) ile dinamik olarak nesneler oluşturmak istiyorum.Spring <constructor-arg> öğesi, bir ref değerini belirtmelidir

Ancak, spring.xml dosyası yüklendiğinde bir özel durum oluşur. org.springframework.beans.factory.UnsatisfiedDependencyException: iplik "ana" java.lang.ExceptionInInitializerError

içinde

durum tarafından neden hata adıyla fasulye oluşturma 'someBean' sınıf yolu kaynak tanımlanan [yayı. xml]: [0] türünde indeks 0 ile yapıcı argümanı ile ifade edilen istenmeyen bağımlılık: Belirsiz yapıcı argümanı türleri - Yapıcı argümanları olarak doğru fasülye referanslarını belirttiniz mi?

Benim 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> 

Yani sorun nedir? (Istisna anlaşılacağı gibi, ve 0) Yapıcı-arg kullanabilirsiniz kurucu bağımsız olarak

+1

'type =" java.lang.Long "' ile denediniz mi? – LaurentG

+0

Evet, bunu da denedim. Ben de dizini kaldırdım. Ancak – smsnheck

+1

numaralı iyileştirme işleminde yapıcınızın gerçekte – KNU

cevap

10

indeksi 1 sahiptir, ya basit bir tür long ve değer 0, ya da bir sarma tipi java.lang.Long ve boş değer. Ayrıca, şeyleri kontrol altında tutmak için, ikinci bağımsız değişkenin değerini açıkça belirtirim. 0

+0

Ok gibi nasıl göründüğünü paylaşmanız gerekmiyor, ben de value = "" dan value = "0" a geçtim. Ancak sorun hala mevcut – smsnheck

+1

Lütfen "someClass" 'un yapıcısını kodunuza ekleyebilir misiniz? Argümanları doğru sırada geçirdiğine emin misin? – Mikhail

+3

Eh, oldukça utanç verici .. Kurucu (id, isim) gibiydi ve ben (isim, id) çağırdı. – smsnheck

İlgili konular