2013-06-23 57 views
10

我遇到了Spring和構造函數注入的問題。我想用名稱(String)和特殊ID(long)動態創建對象。Spring <constructor-arg>元素必須指定一個ref或值

但是,當加載spring.xml文件時會發生異常。

在線程「主」 java.lang.ExceptionInInitializerError

異常引起的:org.springframework.beans.factory.UnsatisfiedDependencyException:錯誤創建具有名稱豆「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> 

那麼,什麼是錯的呢?構造函數精氨酸具有索引1(和不爲0,作爲異常說)

+1

您是否嘗試過使用'type =「java.lang.Long」'? – LaurentG

+0

是的,我也試過。我也刪除了索引。但沒有改進 – smsnheck

+1

你應該也分享你的構造函數真的看起來像 – KNU

回答

10

在可以使用構造器參數或者是原語類型long和值0,或包裝類型java.lang.Long和一個空值。另外,爲了控制事情,我會將第二個參數的值明確設置爲0.

+0

好吧,我從value =「」切換到value =「0」。但問題仍然存在 – smsnheck

+1

您可否將'someClass'的構造函數的代碼添加到您的文章中?你確定你以正確的順序傳遞參數嗎? – Mikhail

+3

那麼,這很尷尬..構造函數就像(id,名稱),我叫(名稱,ID)。 – smsnheck

相關問題