2012-05-18 90 views
0

我在模型中使用了第三方庫類XYZ作爲參數。 XYZ沒有默認的構造函數。所以春天是不能夠創建豆給它的錯誤信息爲春天的bean類實例化沒有默認構造函數的類

org.springframework.web.util.NestedServletException: Request processing failed; 

nested exception is org.springframework.data.mapping.model.MappingInstantiationException: 

Could not instantiate bean class [org.abc.def.XYZ]: No default constructor found;nested exception is java.lang.NoSuchMethodException: org.abc.def.XYZ./<init/>() 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:681) 

我該怎麼做才能解決這個問題?我無法將默認構造函數添加到XYZ。

我在我的調度程序servlet中添加了以下內容,但它仍然無效。

<bean name="token" class="org.abs.def.Xyx"> 
    <constructor-arg name="arg1" value="val1"/> 
    <constructor-arg name="arg2" value="val2"/> 
    <constructor-arg name="arg3" value="val3"/> 
</bean> 

謝謝。

回答

3

你可以在XML文件中將它定義爲一個spring bean,傳遞所有必要的參數來實例化它。

樣本:

<bean id="xyz" class="com.a.b.Xyz" > 
    <constructor-arg index="0" ref="anotherBean"/> 
    <constructor-arg index="1" value="12"/> 
</bean> 
+0

我試過這樣做,但它不起作用。它拋出相同的錯誤! – shailesh

+0

你在哪裏以及如何添加它?你如何初始化你的春天的上下文?你使用的是什麼版本的春天? – fmucar

0

你需要提供<constructor-arg>元素在你的應用程序上下文的配置文件,如the documentation描述。

相關問題