2016-09-05 5 views
0

flowに沿っていくつかのクラスをMuleに使用しています。Mule/Spring - Javaで通知オブジェクトを呼び出す

Java classesのうちの1つで、I は、一部の値を持つオブジェクトを設定します。

最後に私はと呼ぶべきですからそのオブジェクトと値を設定してください。

は、私はクラスで spring beanを持っている:

<spring:bean id="personObject" class="object.Person" /> 

続いて、最後に、私のJavaコードで私が使用:

@Override 
    public Object onCall(MuleEventContext arg0) throws Exception { 
     Person person = arg0.getMuleContext().getRegistry().lookupObject("personObject"); 
} 

しかしヌルperson戻り値をすべて。

Personクラスのすべてのフィールドには、セッターとゲッターがあります。

私は間違っていますか?

答えて

1

私は、Spring Beanには、アプリケーションがデプロイされ、その後にリフレッシュされないときのPersonクラスの初期状態が含まれていると思います。

グローバル要素にSpring Beanを作成する代わりに、他の方法で試すことができます。以下のようなデータを設定した後、Javaコードからpersonオブジェクトをレジストリに追加できます(これからMule eventcontextを返す必要があります)。クラス)。フロー内の他のJavaクラスから

@Override 
public Object onCall(MuleEventContext eventContext) throws Exception { 
    Person per = new Person(); 
    per.setName("Mulesoft"); 
    eventContext.getMuleContext().getRegistry().registerObject("personObject", per); 
    return eventContext; 
} 

は、あなたは、このアプローチが好きなら試してみて

@Override 
public Object onCall(MuleEventContext eventContext) throws Exception { 
    Person person = eventContext.getMuleContext().getRegistry().lookupObject("personObject"); 
    System.out.println("Name is :"+person.getName()); 
    return null; 
} 

のような人物オブジェクトの値を読み取ることができます。

関連する問題