Mule REST组件返回类型

时间:2015-04-23 06:37:14

标签: java rest jersey mule mule-component

我正在尝试在Mule Flow中实现REST组件,我也能够公开REST服务,并且响应也会回到客户端。但是,当我使用Mule Java Component访问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;
}

}

第一个sysout的输出是 Message payload class is class org.mule.module.jersey.JerseyResourcesComponent$2但是当我尝试将其转换为org.mule.module.jersey.JerseyResourcesComponent对象时,它会给出classCastException,java.lang.ClassCastException: org.mule.module.jersey.JerseyResourcesComponent$2 cannot be cast to org.mule.module.jersey.JerseyResourcesComponent 这个$ 2在类名后面意味着什么,以及可能的解决方案。

基本上我是在将响应发送到客户端之前尝试基于REST组件响应来路由我的消息。

希望我对我的问题很清楚。

1 个答案:

答案 0 :(得分:1)

我从Mule论坛得到了答案。

$ 2是一个由Jersey组件创建的org.mule.api.transport.OutputHandler类型的匿名类。

我尝试使用“Byte Array To String”并且它有效。它解决了我的目的。