0

モデルの引数としてサード パーティのライブラリ クラス XYZ を使用しています。XYZ にはデフォルトのコンストラクターがありません。そのため、Spring は 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 にデフォルト コンストラクタを追加できません。

ディスパッチャ サーブレットに以下を追加しましたが、まだ機能しません。

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

ありがとう。

4

2 に答える 2

3

インスタンス化に必要なすべてのパラメーターを渡す Spring Bean として、XML ファイルで定義できます。

サンプル:

<bean id="xyz" class="com.a.b.Xyz" >
    <constructor-arg index="0" ref="anotherBean"/>
    <constructor-arg index="1" value="12"/> 
</bean>
于 2012-05-18T08:38:14.693 に答える
0

ドキュメント<constructor-arg>で説明されているように、アプリケーション コンテキスト構成ファイルに要素を指定する必要があります。

于 2012-05-18T08:39:43.537 に答える