【问题标题】:java.lang.IllegalArgumentException: UT000068: Servlet path match failedjava.lang.IllegalArgumentException: UT000068: Servlet 路径匹配失败
【发布时间】:2020-01-03 16:49:09
【问题描述】:

我正在将我的应用程序从 websphere 迁移到 jboss EAP 7.1.0,但出现以下错误。

错误

错误 [默认任务 37] nmateti ActionExceptionHandler.logException(143) | java.lang.IllegalArgumentException: UT000068: Servlet 路径匹配失败 在 io.undertow.servlet.handlers.ServletPathMatchesData.getServletHandlerByPath(ServletPathMatchesData.java:83) 在 io.undertow.servlet.handlers.ServletPathMatches.getServletHandlerByPath(ServletPathMatches.java:88) 在 io.undertow.servlet.spec.RequestDispatcherImpl.(RequestDispatcherImpl.java:74) 在 io.undertow.servlet.spec.ServletContextImpl.getRequestDispatcher(ServletContextImpl.java:330) 在 org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:93) 在 org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:82) 在 org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:51) 在 org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48) 在 org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) 在 org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) 在 org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) 在 org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280) 在 org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858) 在 org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 在 io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) 在 io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) 在 com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119) 在 com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55) 在 io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) 在 io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) 在 com.wm.snapshot.webapp.filter.StackFilter.doFilter(StackFilter.java:52) 在 io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) 在 io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) 在 com.wm.snapshot.webapp.filter.LogFilter.doFilter(LogFilter.java:93) 在 io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) 在 io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264) 在 org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) 在 org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) 在 org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) 在 org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) 在 org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) 在 org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:193) 在 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274) 在 org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148) 在 org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98) 在 io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) 在 io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) 在 org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:65) 在 io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) 在 io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) 在 io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) 在 io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) 在 io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) 在 org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) 在 io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 在 io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) 在 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.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) 在 io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) 在 io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 在 org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 在 io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 在 org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68) 在 io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 在 io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292) 在 io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81)

【问题讨论】:

    标签: jboss


    【解决方案1】:

    您是否使用默认配置?特别是默认的servlet?因为这个错误与没有默认的servlet并且请求不匹配映射的servlet有关,所以抛出异常。

    getServletHandlerByPath - 非法ArgumentException UT00068:

    ERROR [default task-37] nmateti ActionExceptionHandler.logException(143) | java.lang.IllegalArgumentException: UT000068: Servlet path match failed at io.undertow.servlet.handlers.ServletPathMatchesData.getServletHandlerByPath(ServletPathMatchesData.java:83) at io.undertow.servlet.handlers.ServletPathMatches.getServletHandlerByPath
    

    还可以考虑迁移到上周发布的 EAP 7.2 CP 3,或者至少迁移到 EAP 7.1.6,它纠正了 EAP 7.0.0 和 7.1.0 上的几个错误。

    【讨论】:

    • 你能告诉我 web.xml 应该如何查找默认配置。因为我尝试了一些东西,但没有任何效果。
    【解决方案2】:

    找到解决方案:只需在配置文件中为已完成映射的特定路径/方法添加redirect = true

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-19
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      • 1970-01-01
      相关资源
      最近更新 更多