Mule ESB Java组件3.8文档
我试图回答官方文档中的基本Java组件示例: IDE是v.6.0.1 我意识到Java类应该扩展Callable。这主要是与以前版本的MULE的最大区别。就我而言Mule ESB Java组件3.8文档,mule,mule-component,Mule,Mule Component,我试图回答官方文档中的基本Java组件示例: IDE是v.6.0.1 我意识到Java类应该扩展Callable。这主要是与以前版本的MULE的最大区别。就我而言 package javacomponent; import org.mule.api.MuleEventContext; import org.mule.api.lifecycle.Callable; public class helloWorldComponent implements Callable{ @Override
package javacomponent;
import org.mule.api.MuleEventContext;
import org.mule.api.lifecycle.Callable;
public class helloWorldComponent implements Callable{
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
eventContext.getMessage().setInvocationProperty("myProperty", "Hello World!");
return eventContext.getMessage().getPayload();
}
}
我遇到的问题是,在运行应用程序并对localhost:8081进行http/get后,我无法使用Hello World!在浏览器中呈现的消息
上一个版本有什么变化吗?我是否也应该包含setPayload元素?引用代码,它设置调用属性或变量,并返回现有的有效负载,该有效负载可以是
{NullPayload}
,因为尚未定义。尝试调试和评估Mule Debugger中的变量选项卡,您应该会找到一个名为:myProperty
的新变量
要获取基本的Hello World文本,请执行以下选项之一:
eventContext.getMessage().setPayload(“Hello World!”)代码>
return eventContext.getMessage().getInvocationProperty(“myProperty”)代码>
在引用代码时,它设置一个调用属性或变量,并返回现有的有效负载,该有效负载可以是
{NullPayload}
,因为尚未定义。尝试调试和评估Mule Debugger中的变量选项卡,您应该会找到一个名为:myProperty
的新变量
要获取基本的Hello World文本,请执行以下选项之一:
eventContext.getMessage().setPayload(“Hello World!”)代码>
return eventContext.getMessage().getInvocationProperty(“myProperty”)代码>
首先要检查的是您是否正确地实例化了Java类。我不清楚配置Java对象的UI或可视化方式。我发现了一个非常简单的Spring配置示例,如下所示:
<spring:bean id="ordersTransform" name="OrdersTransformSingleton" class="org.dlw.transport.OrdersTransformSingleton" scope="singleton" />
以及Java对象组件:
首先检查这一点,确保在运行时实例化类。然后在实现的可调用方法中添加一个断点,看看应用程序指针是否将您引入该方法。如果是,请将消息添加到有效负载
public Object onCall(MuleEventContext eventContext) throws Exception {
// freshen
this.transportObj = null;
this.transportObj = new ArrayList<OrdersValueObject>();
MuleMessage res = eventContext.getMessage();
List<Map> list = (LinkedList) res.getPayload();
...
res.setPayload(transportObj);
return res;
}
public对象onCall(MuleEventContext eventContext)引发异常{
//清新
this.transportObj=null;
this.transportObj=新的ArrayList();
MuleMessage res=eventContext.getMessage();
List=(LinkedList)res.getPayload();
...
res.setPayload(transportObj);
返回res;
}
请记住设置有效负载并返回消息。首先要检查的是您是否正确实例化了Java类。我不清楚配置Java对象的UI或可视化方式。我发现了一个非常简单的Spring配置示例,如下所示:
<spring:bean id="ordersTransform" name="OrdersTransformSingleton" class="org.dlw.transport.OrdersTransformSingleton" scope="singleton" />
以及Java对象组件:
首先检查这一点,确保在运行时实例化类。然后在实现的可调用方法中添加一个断点,看看应用程序指针是否将您引入该方法。如果是,请将消息添加到有效负载
public Object onCall(MuleEventContext eventContext) throws Exception {
// freshen
this.transportObj = null;
this.transportObj = new ArrayList<OrdersValueObject>();
MuleMessage res = eventContext.getMessage();
List<Map> list = (LinkedList) res.getPayload();
...
res.setPayload(transportObj);
return res;
}
public对象onCall(MuleEventContext eventContext)引发异常{
//清新
this.transportObj=null;
this.transportObj=新的ArrayList();
MuleMessage res=eventContext.getMessage();
List=(LinkedList)res.getPayload();
...
res.setPayload(transportObj);
返回res;
}
请记住设置有效负载并返回消息。谢谢您的帮助!现在我明白了为什么有效载荷为空,我将消息分配给它,并可以在浏览器中呈现。-谢谢,这对我很有用!现在我明白了为什么有效负载为空,我将消息分配给它,并可以在浏览器中呈现。-在配置XML中,我定义了Java类,如下所示:在设置paylod后对我有效。-在配置XML中,我定义了Java类,如下所示:在设置paylod后对我有效-