Mule REST 组件 Return 类型
Mule REST Component Return type
我正在尝试在 Mule Flow 中实现 REST 组件,我也能够公开 REST 服务并且响应也返回给客户端。但是当我让 Mule Java 组件访问 REST 组件响应的属性时,我无法做到这一点。下面是我的 Mule 消息处理器的代码,
public class RestResponseProcessor implements Callable{
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
Object messagePayload = eventContext.getMessage().getPayload();
System.out.println("Message payload class is " + messagePayload.getClass());
org.mule.module.jersey.JerseyResourcesComponent jerseyResponse = (org.mule.module.jersey.JerseyResourcesComponent) messagePayload;
System.out.println("jerseyResponse.getClass() is " + jerseyResponse.getClass());
return eventContext;
}
}
第一个系统输出的输出是
Message payload class is class org.mule.module.jersey.JerseyResourcesComponent
但是当我尝试将它转换为 org.mule.module.jersey.JerseyResourcesComponent
对象时,它给出了 classCastException,java.lang.ClassCastException: org.mule.module.jersey.JerseyResourcesComponent cannot be cast to org.mule.module.jersey.JerseyResourcesComponent
class 名称后的 $2 是什么意思,可能的解决方案是什么。
基本上,在将响应发送给客户端之前,我会尝试根据 REST 组件响应来路由我的消息。
希望我的问题很清楚。
我从 Mule 论坛得到了答案。
$2 是由 Jersey 组件创建的 org.mule.api.transport.OutputHandler 类型的匿名 class。
我尝试使用 "Byte Array To String" 并且成功了。它解决了我的目的。
我正在尝试在 Mule Flow 中实现 REST 组件,我也能够公开 REST 服务并且响应也返回给客户端。但是当我让 Mule Java 组件访问 REST 组件响应的属性时,我无法做到这一点。下面是我的 Mule 消息处理器的代码,
public class RestResponseProcessor implements Callable{
@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
Object messagePayload = eventContext.getMessage().getPayload();
System.out.println("Message payload class is " + messagePayload.getClass());
org.mule.module.jersey.JerseyResourcesComponent jerseyResponse = (org.mule.module.jersey.JerseyResourcesComponent) messagePayload;
System.out.println("jerseyResponse.getClass() is " + jerseyResponse.getClass());
return eventContext;
}
}
第一个系统输出的输出是
Message payload class is class org.mule.module.jersey.JerseyResourcesComponent
但是当我尝试将它转换为 org.mule.module.jersey.JerseyResourcesComponent
对象时,它给出了 classCastException,java.lang.ClassCastException: org.mule.module.jersey.JerseyResourcesComponent cannot be cast to org.mule.module.jersey.JerseyResourcesComponent
class 名称后的 $2 是什么意思,可能的解决方案是什么。
基本上,在将响应发送给客户端之前,我会尝试根据 REST 组件响应来路由我的消息。
希望我的问题很清楚。
我从 Mule 论坛得到了答案。
$2 是由 Jersey 组件创建的 org.mule.api.transport.OutputHandler 类型的匿名 class。
我尝试使用 "Byte Array To String" 并且成功了。它解决了我的目的。