将Web服务变量保存到MuleSoft消息中

时间:2013-10-31 22:50:07

标签: java rest mule mule-studio

我有一个http端点重定向到REST Java Web服务。 我收到了一个application / x-www-form-urlencoded请求,其中包含一些嵌入在请求正文中的属性。

在Web服务中,我想用这些属性更新mule消息状态。 由于RequestContext.getEventContext()现在已被弃用,而且Doc说要实现Callable,但似乎对我不起作用。从不调用onCall方法。

有什么想法吗?

在我的代码下面:

enter code here

    @Path("/restClass")
    public class HelloREST implements Callable{
    private String industry;
    private String lob;
    private String nuixlegalentity;
    private org.apache.log4j.Logger log = Logger.getLogger(LoadClass.class);

@POST
@Path("/setPayload")
@Consumes("application/x-www-form-urlencoded")
public void setMessage(@FormParam("industry") String industryParam, @FormParam("lob") String lobParam,@FormParam("nuixlegalentity") String nuixlegalentityParam){

    log.debug("**************INSIDE SETMESSAGE******************");

    industry=industryParam;
    lob=lobParam;
    nuixlegalentity=nuixlegalentityParam;


}
@Override 
public Object onCall(MuleEventContext eventContext) throws Exception{

    log.debug("**************INSIDE ONCALL******************");

    eventContext.getSession().setProperty("industry","industry");
    eventContext.getSession().setProperty("lob",lob);
    eventContext.getSession().setProperty("nuixlegalentity",nuixlegalentity);
    return eventContext.getMessage();
}

}

}

1 个答案:

答案 0 :(得分:0)

我假设您使用此类作为Jersey传输的资源。在这种情况下,Mule将根据传入请求调用JAX-RS注释方法,因此不会调用onCall。因此,实施Callable是没有用的。

使用RequestContext.getEventContext()是在泽西岛处理的资源中获取EventContext的唯一方法。

到目前为止,MuleSoft尚未为此类案件提供可行的替代方案,因此,即使RequestContext.getEventContext()已被弃用,您仍然别无选择,只能使用它。