[asyncError()] 호출이 비동기 상태 [MUST_DISPATCH]인 요청에 대해 유효하지 않습니다.
env:
사례 1:
클라이언트: springboot(1.5.12).릴리스) + spring-boot-admin-starter-client 1.5.7
admin: springboot(2.1.1).릴리스) + spring-boot-admin-starter-server 2.1.1
클라이언트를 실행하고 관리 앱을 새로 고칠 때.오류: "Async 상태 [MUST_DISPATCH]가 있는 요청에 대해 [asyncError()] 호출이 유효하지 않습니다.",
사례 2:
(2.1.1.릴리스) 클라이언트와 서버가 모두 동일한 버전을 사용하고 동일한 오류가 있습니다.
자세한 오류는 다음과 같습니다.
2018-12-04 11:10:40.129 ERROR 2572 --- [nio-9090-exec-5] o.a.catalina.connector.CoyoteAdapter : Exception while processing an asynchronous request
java.lang.IllegalStateException: Calling [asyncError()] is not valid for a request with Async state [MUST_DISPATCH]
at org.apache.coyote.AsyncStateMachine.asyncError(AsyncStateMachine.java:440) ~[tomcat-embed-core-9.0.13.jar:9.0.13]
at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:512) [tomcat-embed-core-9.0.13.jar:9.0.13]
at org.apache.coyote.Request.action(Request.java:430) ~[tomcat-embed-core-9.0.13.jar:9.0.13]
at org.apache.catalina.core.AsyncContextImpl.setErrorState(AsyncContextImpl.java:382) ~[tomcat-embed-core-9.0.13.jar:9.0.13]
at org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:239) ~[tomcat-embed-core-9.0.13.jar:9.0.13]
at org.apache.coyote.AbstractProcessor.dispatch(AbstractProcessor.java:241) [tomcat-embed-core-9.0.13.jar:9.0.13]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:53) [tomcat-embed-core-9.0.13.jar:9.0.13]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:791) [tomcat-embed-core-9.0.13.jar:9.0.13]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417) [tomcat-embed-core-9.0.13.jar:9.0.13]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.13.jar:9.0.13]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_162]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_162]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.13.jar:9.0.13]
at java.lang.Thread.run(Unknown Source) [na:1.8.0_162]
JETTY를 켜보세요. 도움이 되었습니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-tomcat</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
SBA-UI에서 일부 긴 폴링을 사용하고 있는데 브라우저가 연결을 닫고 서버가 연결에 일부 데이터를 쓰려고 하면 위의 예외가 기록됩니다.이 모든 것은 꽤 정상적입니다.애플리케이션에 영향을 미치지 않아야 합니다.자세한 내용은 https://github.com/spring-projects/spring-boot/issues/15057 에서 확인할 수 있습니다.
실제로 간단한 해결책이 있습니다.Tomcat 서블릿 컨테이너를 사용하지 말고 다음과 같은 사후 대응 설정으로 관리 서버를 실행합니다.
@SpringBootApplication
@EnableAdminServer
public class AdminServer {
public static void main(String[] args) {
new SpringApplicationBuilder(AdminServer.class)
.web(WebApplicationType.REACTIVE)
.run(args);
}
}
이렇게 하면 오류가 발생하지 않습니다.
https://github.com/codecentric/spring-boot-admin/issues/1039#issuecomment-562910061, 에 게시된 것처럼 다음과 같이 Tomcat 버전을 변경하면 됩니다(pom.xml에서).
<properties>
<tomcat.version>9.0.54</tomcat.version>
</properties>
언급URL : https://stackoverflow.com/questions/53605197/calling-asyncerror-is-not-valid-for-a-request-with-async-state-must-dispatc
'bestsource' 카테고리의 다른 글
윈도우즈에서 OpenSSL을 사용하지 않고 pfx 파일 또는 인증서 저장소에서 개인 키 추출 (0) | 2023.09.01 |
---|---|
도커 합성 버전 3에서 depends_on의 조건 형식에 대한 대안은 무엇입니까? (0) | 2023.09.01 |
mysqld 서비스는 ec2 서버에서 하루에 한 번 중지됩니다. (0) | 2023.09.01 |
Spring Rest Template를 사용하여 Https Rest 서비스 액세스 (0) | 2023.09.01 |
jQuery 빈칸() 대 제거() (0) | 2023.09.01 |