我有一个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();
}
}
}
答案 0 :(得分:0)
我假设您使用此类作为Jersey传输的资源。在这种情况下,Mule将根据传入请求调用JAX-RS注释方法,因此不会调用onCall
。因此,实施Callable
是没有用的。
使用RequestContext.getEventContext()
是在泽西岛处理的资源中获取EventContext
的唯一方法。
到目前为止,MuleSoft尚未为此类案件提供可行的替代方案,因此,即使RequestContext.getEventContext()
已被弃用,您仍然别无选择,只能使用它。