Mule/Spring - 在 Java 中调用通知对象
Mule/Spring - Call informed object in Java
我在 Mule
的 flow
中使用了一些 classes。
在其中一个 Java classes
中,我 设置了一个具有一些值的对象。
最后我想调用到那个对象并设置值。
我有一个 spring bean
class:
<spring:bean id="personObject" class="object.Person" />
然后,最后,在我的 Java 代码中,我使用:
@Override
public Object onCall(MuleEventContext arg0) throws Exception {
Person person = arg0.getMuleContext().getRegistry().lookupObject("personObject");
}
但是 person
returns 所有值为 null。
Person class 的所有字段都有 setter 和 getter。
我做错了什么?
我认为这里的问题是,Spring bean 在部署应用程序时包含 Person class 的初始状态,之后它不会刷新。
您可以尝试其他方式,而不是在全局元素中创建 spring bean,您可以在完成如下设置数据后从 java 代码将人员对象添加到注册表(你应该 return 来自这个 class 的 Mule 事件上下文)。
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
Person per = new Person();
per.setName("Mulesoft");
eventContext.getMuleContext().getRegistry().registerObject("personObject", per);
return eventContext;
}
从流程中的其他 java classes,您可以读取 person 对象值,例如
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
Person person = eventContext.getMuleContext().getRegistry().lookupObject("personObject");
System.out.println("Name is :"+person.getName());
return null;
}
如果您喜欢这种方法,请尝试一下。
我在 Mule
的 flow
中使用了一些 classes。
在其中一个 Java classes
中,我 设置了一个具有一些值的对象。
最后我想调用到那个对象并设置值。
我有一个 spring bean
class:
<spring:bean id="personObject" class="object.Person" />
然后,最后,在我的 Java 代码中,我使用:
@Override
public Object onCall(MuleEventContext arg0) throws Exception {
Person person = arg0.getMuleContext().getRegistry().lookupObject("personObject");
}
但是 person
returns 所有值为 null。
Person class 的所有字段都有 setter 和 getter。
我做错了什么?
我认为这里的问题是,Spring bean 在部署应用程序时包含 Person class 的初始状态,之后它不会刷新。
您可以尝试其他方式,而不是在全局元素中创建 spring bean,您可以在完成如下设置数据后从 java 代码将人员对象添加到注册表(你应该 return 来自这个 class 的 Mule 事件上下文)。
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
Person per = new Person();
per.setName("Mulesoft");
eventContext.getMuleContext().getRegistry().registerObject("personObject", per);
return eventContext;
}
从流程中的其他 java classes,您可以读取 person 对象值,例如
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
Person person = eventContext.getMuleContext().getRegistry().lookupObject("personObject");
System.out.println("Name is :"+person.getName());
return null;
}
如果您喜欢这种方法,请尝试一下。