Ошибка задачи рабочего процесса. Com.uber.cadence.internal.worker.WorkflowExecutionException: java.lang.IllegalAccessException
Я пытаюсь выполнить пример java-клиента Cadence, представленный в https://cadenceworkflow.io/docs/06_javaclient/01_quick_start, и получаю исключение ниже, когда я запускаю рабочий процесс с помощью CLI
09:45:02.123 [Workflow Executor taskList="HelloWorldTaskList", domain="test-domain": 1] ERROR c.u.c.i.r.ReplayDecisionTaskHandler - Workflow task failure. startedEventId=3, WorkflowID=34e36721-641b-40fc-bbf7-37e9ae7afd92, RunID=845af22f-d982-4794-b5f2-ba6821755a04. If see continuously the workflow might be stuck.
java.lang.Error: com.uber.cadence.internal.worker.WorkflowExecutionException: java.lang.IllegalAccessException
at com.uber.cadence.internal.sync.POJOWorkflowImplementationFactory$POJOWorkflowImplementation.execute(POJOWorkflowImplementationFactory.java:239) ~[cadence-client-2.6.3.jar:na]
at com.uber.cadence.internal.sync.WorkflowRunnable.run(WorkflowRunnable.java:46) ~[cadence-client-2.6.3.jar:na]
at com.uber.cadence.internal.sync.CancellationScopeImpl.run(CancellationScopeImpl.java:102) ~[cadence-client-2.6.3.jar:na]
at com.uber.cadence.internal.sync.WorkflowThreadImpl$RunnableWrapper.run(WorkflowThreadImpl.java:85) ~[cadence-client-2.6.3.jar:na]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[na:na]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: com.uber.cadence.internal.worker.WorkflowExecutionException: java.lang.IllegalAccessException
at com.uber.cadence.internal.sync.POJOWorkflowImplementationFactory.mapToWorkflowExecutionException(POJOWorkflowImplementationFactory.java:356) ~[cadence-client-2.6.3.jar:na]
... 9 common frames omitted
9:49
может ли кто-нибудь сообщить мне, как это исправить?
1 ответ
Я столкнулся с той же проблемой.
В первом фрагменте кода примера отсутствует public
модификатор доступа на HelloWorld
интерфейс. После настройки публичного интерфейса я смог без проблем запустить пример.
Код должен выглядеть так:
import com.uber.cadence.workflow.Workflow;
import com.uber.cadence.workflow.WorkflowMethod;
import org.slf4j.Logger;
public class GettingStarted {
private static Logger logger = Workflow.getLogger(GettingStarted.class);
public interface HelloWorld {
@WorkflowMethod
void sayHello(String name);
}
}