当RequestContext.getEvent()时Mule返回null

当RequestContext.getEvent()时Mule返回null,mule,Mule,在org.mule.component.BindingInvocationHandlerinvoke方法期间,mule试图从RequestContext.getEvent()获取当前事件 但是该值为Null,我们得到的是NullPointerException。 将RequestContext的CurrentEvent设置为null的原因可能是什么 更新:我们正在使用java.util.concurrent.ExecutorService调用BindingInvocationHandler绑定的

org.mule.component.BindingInvocationHandler
invoke方法期间,mule试图从
RequestContext.getEvent()获取当前事件
但是该值为Null,我们得到的是
NullPointerException
。 将
RequestContext
CurrentEvent
设置为null的原因可能是什么


更新:我们正在使用java.util.concurrent.ExecutorService调用BindingInvocationHandler绑定的方法。

RequestContext.getEvent()
使用
ThreadLocal
查找正在运行的事件,因此您可能是在一个线程中调用它,而该线程不是处理
MuleEvent
的线程

如果是这种情况,您可以尝试克隆事件,然后将其传递给线程,并使用
RequestContext.setEvent(xxx)
将其重新建立为当前事件

预计会出现湍流,因为这不是一个小壮举,尽管Mule在内部做到了这一点


使用事件上的
newThreadCopy()
获取副本,该副本可以由另一个Mule线程处理,而不会引发异常。

确切地说,我们使用线程机制调用它。它使用缓存的线程池-java.util.concurrent.ExecutorService。如果我们仍然需要使用ExecutorService,我们如何才能通过此错误?在我的回答中添加了一些建议。谢谢,我将尝试您的建议并尽快回复。