2010-11-30 11 views
1

春にはとても新しいです。私はgetメソッドを持つInterface(MessageHandler)を持っていますが、このメソッドは別のインターフェイス(messageChecker)の実装のリストを返します。私の春のXML構成で実装の一覧で構成されたSpringのコンフィグレーションファイル

public interface MessageHandler { 
    public void process(BufferedReader br); 
    public void setMessageCheckerList(List mcList); 
    [B]public List getMessageCheckerList();[/B] 
} 

、私は他のBeanここ

<bean id="messageHandler" class="com.XXX.messagereceiver.MessageHandlerImpl"> 
    <property name="messageCheckerList" ref="checkerList"/> 
</bean> 

<bean id="checkerList" class="java.util.ArrayList"> 
    <constructor-arg> 
    <list> 
    <ref bean="HL7Checker"/> 
    </list> 
    </constructor-arg> 
</bean> 

<bean id="HL7Checker" class="com.XXX.messagereceiver.HL7CheckerImpl"> 
    <property name="messageExecutor" ref="kahootzExecutor"/> 
</bean> 

とともに、このような何かを持っている私はcheckerlist渡しています - (今の私は1つだけを持っている実装のリストです)

Checkerlistには実際の実装であるBean Idへの参照が含まれています。

HL7Checkerは、インターフェイスmessageCheckerの実装です。

私はメインプログラムを実行するときに、 "messageHandler"というbeanを注入してgetMessageCheckerListを呼び出すと、null値を返します。これらのgetterメソッドとsetterメソッドは、バネを使用せずに正常に動作しています。

私は何が問題であるかわかりません。

答えて

0

私はあなたの悩みのための答えを知らないが、私はチェックします:

  • messageHandler Bean内のセッターsetMessageCheckerList(List)が呼ばれているのですか? (デバッガを使用するか、System.out...のようなトレース出力を使用します)。そうでない場合は、Spring XML設定の設定に問題がある可能性があります。投稿したBean定義にはプロパティを設定する必要があり、Springはプロパティを設定せずにmessageHandler Beanを作成しません。
  • 誰がsetMessageCheckerList(List)セッターを呼び出しますか?またはさらに正確には、プロパティの値を格納するフィールドにはどのようなコードが書き込まれますか?おそらくフィールドはSpringによって適切に初期化されますが、後でnullに上書きされますか?
  • あなたは、Springがあなたのために設定したのと全く同じオブジェクト(すなわち、messageHandler bean)上のgetMessageCheckerListと呼ぶことを確かめてください。あなたが掲示した定義は、MessageHandlerImplのインスタンスがSpringによって作成されたことを明確に示していますが、他のインスタンスを他の方法で作成することはできません。だから、Springによって作成されたインスタンスが適切な値を保持しているかもしれませんが、間違ったインスタンスでget...を実行しますか?
+0

Thanks Grzegorz、私は私の実装で新しいメッセージハンドラを作成したことがありました。今はうまくいきます。 – velapanur

関連する問題