flowable / flowable/flowable-engine

Flowable-task: NoSuchMethodError when creating error response (current master)

Aperta
#1,787 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
9.5k
Fork
2.9k
Merge medio
7h 8m
PR unite (30g)
2

Descrizione

When running `flowable-task` build from current master standalone it is not possible to view BPMN Process Instance Diagramms (or terminate BPMN Process Instances) using `flowable-admin`.

`Flowable-task` log:

```
Exception Processing ErrorPage[errorCode=0, location=/error]
java.lang.NoSuchMethodError: javax/servlet/http/HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping; (loaded from jar:file:/app/WEB-INF/lib/javax.servlet-api-3.1.0.jar!/ by org.springframework.boot.loader.LaunchedURLClassLoader@4efaa35) called from class org.apache.catalina.core.ApplicationHttpRequest (loaded from jar:file:/app/WEB-INF/lib-provided/tomcat-embed-core-9.0.19.jar!/ by org.springframework.boot.loader.LaunchedURLClassLoader@4efaa35).
at org.apache.catalina.core.ApplicationHttpRequest.setRequest(ApplicationHttpRequest.java:690)
at org.apache.catalina.core.ApplicationHttpRequest.(ApplicationHttpRequest.java:114)
at org.apache.catalina.core.ApplicationDispatcher.wrapRequest(ApplicationDispatcher.java:917)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:358)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:394)
at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:253)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:175)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:836)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1747)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Unknown Source)
```

The cause seems to be that Flowable uses servlet `3.1`, but Tomcat 9 used by Spring Boot uses servlet `4.0`.

Edit:
Error only happens if `flowable-task` tries to return an error (e.g. `Could not find a process instance with id '2a4cc4f7-6a51-11e9-9f6d-dabcb61c8545'`) to `flowable-admin`. (Error was caused by a historic process with no `end_time_` (displayed by flowable-admin as `active`).)

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Non viene indicato alcun file sorgente né alcun test. Inizia esaminando le dipendenze di build di flowable-task e flowable-admin e riproducendo una risposta di errore, quindi confronta la dipendenza da Servlet API 3.1 con il runtime Tomcat 9/Spring Boot Servlet 4.0. Il lavoro è completato quando i diagrammi BPMN e la terminazione dei processi funzionano tramite flowable-admin, anche quando flowable-task restituisce un errore.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java, spring-boot
Ambito
backend
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
38/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.