Я получаю следующую ошибку, когда откат пытается отправить httpresponse.
java.lang.IllegalArgumentException: UT010046: No servlet context at to dispatch to
at io.undertow.servlet.spec.AsyncContextImpl.dispatch(AsyncContextImpl.java:173) [undertow-servlet-1.1.0.Final.jar!/:1.1.0.Final]
at org.eclipse.jetty.continuation.Servlet3Continuation.resume(Servlet3Continuation.java:152) ~[jetty-continuation.jar:8.1.3.v20120416]
at com.xyz.xyzapp.apihandler.util.AsyncJobWaitingAPIHandler$MultiJobCompletionContext.onListenerCompletion(AsyncJobWaitingAPIHandler.java:460) ~[xyzapp-apihandler.jar:1.4.1-2015.10.dev]
at com.xyz.xyzapp.apihandler.util.AsyncJobWaitingAPIHandler$MultiJobCompletionListener.onCompletion(AsyncJobWaitingAPIHandler.java:492) ~[xyzapp-apihandler.jar:1.4.1-2015.10.dev]
at com.xyz.xyzapp.job.JobEngine$4.onEvent(JobEngine.java:274) ~[xyzapp-job.jar:1.4.1-2015.10.dev]
at com.xyz.xyzapp.job.JobEngine$4.onEvent(JobEngine.java:269) ~[xyzapp-job.jar:1.4.1-2015.10.dev]
at com.xyz.xyzapp.core.event.multicast.LocalMulticastEventManager$1.run(LocalMulticastEventManager.java:134) ~[xyzapp-core.jar:1.4.1-2015.10.dev]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53) ~[spring-context.jar:3.2.9.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_51]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_51]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_51]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_51]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_51]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_51]
Я использую Jetty.Continuation (8.1.3) для приостановки HTTP-запроса. У меня есть приложение spring (3.2.9), развернутое в wildfly (8.2.0.Final). Сервлет Spring настроен через web-fragment.xml, чтобы указать, что сервлет является асинхронным.
<servlet>
<servlet-name>apis</servlet-name>
<servlet-class>com.xyz.xyzapp.server.common.spring.ClassloaderOverridingDispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
Когда одно из заданий (задание является внутренней структурой) завершается, оно должно ответить клиентам (кто бы ни слушал), что задание выполнено. Во время этого рабочего процесса я получаю указанную выше ошибку.
Я убедился, что wildfly запущен и работает, клиенты действительно ждут ответа.
Это работало с Jboss 6.1.0.Final/Tomcat.
В чем может быть проблема? Любую конфигурацию, которую мне нужно добавить в файл standalone-full.xml для отвода? Похоже, что undertow закрыл HTTP-запрос, не уверен.