Apache Karaf Cave不适用于保险丝

问题描述 投票:0回答:1

我已将洞穴存储库安装到Fuse,然后创建了一个新的存储库。当我尝试通过http到达存储库时,我从undertow收到以下错误。

注意:我没有更改拖曳设置。它是默认的保险丝包装。

java.lang.IllegalStateException:UT010026:不支持Async此请求,因为并非所有过滤器或Servlet都被标记为支持异步于io.undertow.servlet.spec.HttpServletRequestImpl.startAsync(HttpServletRequestImpl.java:1023)在org.apache.karaf.cave.repository.service.maven.MavenServlet.doGet(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)在io.undertow.servlet.handlers.ServletChain $ 1.handleRequest(ServletChain.java:68)在io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)在org.ops4j.pax.web.service.undertow.internal.Context $ 1.lambda $ wrap $ 0(Context.java:615)在io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)在io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)在io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)在io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)在io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)在io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)在io.undertow.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.handleRequest(PredicateHandler.java:43)在io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)在io.undertow.servlet.handlers.SessionRestoringHandler.handleRequest(SessionRestoringHandler.java:119)在io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)在io.undertow.servlet.handlers.ServletInitialHandler.access $ 100(ServletInitialHandler.java:78)在io.undertow.servlet.handlers.ServletInitialHandler $ 2.call(ServletInitialHandler.java:133)在io.undertow.servlet.handlers.ServletInitialHandler $ 2.call(ServletInitialHandler.java:130)在io.undertow.servlet.core.ServletRequestContextThreadSetupAction $ 1.call(ServletRequestContextThreadSetupAction.java:48)在io.undertow.servlet.core.ContextClassLoaderSetupAction $ 1.call(ContextClassLoaderSetupAction.java:43)在io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)在io.undertow.servlet.handlers.ServletInitialHandler.access $ 000(ServletInitialHandler.java:78)在io.undertow.servlet.handlers.ServletInitialHandler $ 1.handleRequest(ServletInitialHandler.java:99)在io.undertow.server.Connectors.executeRootHandler(Connectors.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(Thread.java:748)

我用跳船在karaf中尝试了相同的步骤(安装和创建洞穴库),在那里一切正常。

在google中搜索期间,我已经在redhat中找到了以下页面,但是由于订阅,我无法看到其内容。https://access.redhat.com/solutions/4222431

感谢您的任何帮助。

谢谢,

BR,法里德

apache-karaf fuse undertow
1个回答
0
投票

问题是(如我在https://ops4j1.jira.com/browse/PAXWEB-1254下的评论),Cave的MavenServlet是使用普通HttpService.registerServlet()注册的,没有指定async support标志。它仅在碰巧的情况下与Jetty一起使用(按预期效果,与pax-web-tomcat和pax-web-undertow不起作用)。

Karaf Cave应该使用Pax Web特定的WebContainer扩展名来org.osgi.service.http.HttpService,或使用注释注册servlet。

我们将继续在Karaf / Cave项目中进行讨论。

© www.soinside.com 2019 - 2024. All rights reserved.