Apache Пещера Караф не работает с предохранителем - PullRequest
0 голосов
/ 04 марта 2020

Я установил cave-репозиторий для Fuse, а затем создал новый репозиторий. Когда я пытаюсь получить доступ к хранилищу через http, я получаю следующую ошибку от undertow.

ПРИМЕЧАНИЕ. Я не изменил настройки откатов. Это пакет предохранителей по умолчанию.

java .lang.IllegalStateException: UT010026: Asyn c не поддерживается для этого запроса, так как не все фильтры или сервлеты были помечены как поддерживающие asyn c at io.undertow.servlet.spe c .HttpServletRequestImpl.startAsyn c (HttpServletRequestImpl. java: 1023) в org. apache .karaf.cave.repository.service.maven.MavenServlet. . java: 285) на javax.servlet.http.HttpServlet.service (HttpServlet. java: 645) на javax.servlet.http.HttpServlet.service (HttpServlet. java: 750) на io.undertow. servlet.handlers.ServletHandler.handleRequest (ServletHandler. java: 74) в io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest (ServletSecurityRoleHandler. java: 62) в iolet_service.Serv. .handleRequest (ServletChain. java: 68) в io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest (ServletDispatchingHandler. java: 36) в org.ops4j.pax.web.service.undertow.inte. лямбда $ wrap $ 0 (Context. java: 615) в io.undertow.servlet.handlers.RedirectDirHandler.handleRequest (RedirectDirHandler. java: 68) в io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handIn . java: 132) в io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest (ServletAuthenticationCallHandler. java: 57) в io.undertow.server.handlers.PredicateHandler.handleRequest: 10. . security.handlers.AuthenticationMechanismsHandler.handleRequest (AuthenticationMechanismsHandler. java: 60) в io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest (CachedAuthenticatedSessionHandler. java: 77) в io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest (AbstractSecurityContextAssociationHandler. java: 43) в io.undertow.server.handlers.PredicateHandler.handle *handler .server.handlers.PredicateHandler. (ServletInitialHandler. java: 269) в io.undertow.servlet.handlers.ServletInitialHandler.access $ 100 (ServletInitialHandler. java: 78) в io.undertow.servlet.handlers.ServletInitialHandler $ 2.call Servlet. : 133) в io.undertow.servlet.handlers.ServletInitialHandler $ 2.call (ServletInitialHandler. java: 130) в io.undertow.servlet.core.ServletRequestContextThreadSetupAction $ 1.call (ServletRequestConnect. undertow.servlet.core.ContextClassLoaderS etupAction $ 1.call (ContextClassLoaderSetupAction. java: 43) по адресу io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest (ServletInitialHandler. java: 249) по адресу io.undertow.servlet.handlersitInHerlet.Herlet. java: 78) в io.undertow.servlet.handlers.ServletInitialHandler $ 1.handleRequest (ServletInitialHandler. java: 99) в io.undertow.server.Connectors.executeRootHandler (Соединители. java: 376) в io. undertow.server.HttpServerExchange $ 1.run (HttpServerExchange. java: 830) при java .util.concurrent. ThreadPoolExecutor.runWorker (ThreadPoolExecutor. java: 1149) в java .util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor. java: 624) в java .lang.Thread.run (поток. * 1064) *: 748)

Я попробовал те же шаги (установка и создание пещерного репозитория) в karaf с jetty, и там все отлично работает.

Во время поиска в google у меня есть нашел следующую страницу в redhat, но из-за подписки я не могу видеть содержимое. https://access.redhat.com/solutions/4222431

Любая помощь приветствуется.

Заранее спасибо,

BR, Фарид

1 Ответ

0 голосов
/ 13 марта 2020

Проблема в том, что (как я прокомментировал в https://ops4j1.jira.com/browse/PAXWEB-1254) Cave's MavenServlet зарегистрирован с использованием обычного HttpService.registerServlet() без указания asyn c поддерживаемого флага. Он работает с Jetty только по совпадению (не работает - как и ожидалось - с pax-web-tomcat и pax-web-undertow).

В пещере Караф следует использовать Pax Web, указав c WebContainer расширение до org.osgi.service.http.HttpService или регистрация сервлета с использованием аннотаций.

Мы продолжим обсуждение в проекте Karaf / Cave.

...