cartago“execlinkedop失败java.lang.illegalargumentexception:内部错误:无法还原op exec上下文”

8iwquhpp  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(536)

我正在尝试执行一个远程操作,也就是说,另一个cartago工件的操作。执行以下@link操作后,出现异常:

@LINK 
void reply() throws OperationException {
    try {
        log("received keepalive back!");
    }
}

cartago发出以下错误消息:
错误:(artifactc)没有参数的execlinkedop出错!cartago.operationexception:execlinkedop失败java.lang.illegalargumentexception:内部错误:无法还原op exec上下文。在cartago.artifact.execlinkedop(artifact。java:964)在camelartifact.camelartifact.receivemsg(camelartifact。java:112)在camelartifact.camelartifact.access$200(camelartifact。java:48)在camelartifact.camelartifact$readcmd.exec(camelartifact。java:207)在卡塔戈。神器。等待(神器。java:831)在 Camel 神器。 Camel 神器。列表路线( Camel 神器。java:68)位于java.base/jdk.internal.reflect.nativemethodaccessorimpl.invoke0(本机方法),位于java.base/jdk.internal.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl)。java:62)在java.base/jdk.internal.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl。java:43)在java.base/java.lang.reflect.method.invoke(method。java:564)在cartago.artifactopmethod.exec(artifactopmethod。java:39)在卡塔戈。神器。操作(神器。java:407)在cartago.artifact.access$200(artifact。java:32)在cartago.artifact$artifactadapter.dooperation(工件。java:1275)在cartago.workspacekernel.serveoperation(workspacekernel。java:1136)在cartago.workspacekernel.access$000(workspacekernel.com)。java:48)在cartago.workspacekernel$environmentcontroller.run(workspacekernel。java:1477)
“op exec context cannot be restored”这个错误到底是什么?如何修复它?

inkz8wg9

inkz8wg91#

当调用execlinkedop而不是cartago内部线程(例如,直接从一些外部java线程)时,通常会发生此错误,您应该将iblockingcmd与await方法一起使用。你可以遵循这个例子。
另一项建议:
在外部方法(远程调用的方法)上使用@link注解
对本地方法使用@internal\u operation并调用execinternalop()。

相关问题