Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-6386

NoSuchMethodException when configuring a filter in undertow subsystem

    XMLWordPrintable

Details

    • Bug
    • Resolution: Won't Do
    • Critical
    • None
    • 10.0.0.Final
    • Web (Undertow)
    • None
    • Hide

      1. Add this filter-ref and filter to your undertow configuration in WildFly:

      <filter-ref name="byte-range" />
      ....
      <filter name="byte-range" class-name="io.undertow.server.handlers.ByteRangeHandler" module="io.undertow.core">  
             <param name="sendAcceptRanges" value="true"/>  
      </filter>
      

      2. Restart WildFly.
      3. Request any location.

      I was able to get the same result for a different handler.

      <filter name="request-buffer" class-name="io.undertow.server.handlers.RequestBufferingHandler" module="io.undertow.core">  
           <param name="maxBuffers" value="200"/>  
      </filter>
      

      I did not try all handlers.

      Show
      1. Add this filter-ref and filter to your undertow configuration in WildFly: <filter-ref name= " byte -range" /> .... <filter name= " byte -range" class- name= "io.undertow.server.handlers.ByteRangeHandler" module= "io.undertow.core" > <param name= "sendAcceptRanges" value= " true " /> </filter> 2. Restart WildFly. 3. Request any location. I was able to get the same result for a different handler. <filter name= "request-buffer" class- name= "io.undertow.server.handlers.RequestBufferingHandler" module= "io.undertow.core" > <param name= "maxBuffers" value= "200" /> </filter> I did not try all handlers.

    Description

      Configuring a filter in the undertow subsystem that does not have a single arg constructor that takes HttpHandler will produce a runtime exception similar to this:

      11:09:46,832 ERROR [io.undertow.request] (default I/O-7) UT005071: Undertow request failed HttpServerExchange{ GET /vidtest/ request {Accept=[text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8], Accept-Language=[en-US,en;q=0.8], Cache-Control=[max-age=0], Accept-Encoding=[gzip, deflate, sdch], User-Agent=[Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36], If-Modified-Since=[Wed, 16 Mar 2016 14:48:13 GMT], Connection=[keep-alive], If-None-Match=[W/"266-1458139693000"], Upgrade-Insecure-Requests=[1], Host=[localhost:8080]} response {}}: java.lang.RuntimeException: WFLYUT0064: Failed to configure handler class io.undertow.server.handlers.ByteRangeHandler
        at org.wildfly.extension.undertow.deployment.ConfiguredHandlerWrapper.wrap(ConfiguredHandlerWrapper.java:78)
        at org.wildfly.extension.undertow.filters.CustomFilterDefinition.createHttpHandler(CustomFilterDefinition.java:100)
        at org.wildfly.extension.undertow.filters.FilterService.createHttpHandler(FilterService.java:57)
        at org.wildfly.extension.undertow.filters.FilterRef.createHttpHandler(FilterRef.java:69)
        at org.wildfly.extension.undertow.LocationService.configureHandlerChain(LocationService.java:96)
        at org.wildfly.extension.undertow.Host.configureRootHandler(Host.java:117)
        at org.wildfly.extension.undertow.Host.getOrCreateRootHandler(Host.java:171)
        at org.wildfly.extension.undertow.Host$HostRootHandler.handleRequest(Host.java:285)
        at io.undertow.server.handlers.NameVirtualHostHandler.handleRequest(NameVirtualHostHandler.java:54)
        at io.undertow.server.handlers.error.SimpleErrorPageHandler.handleRequest(SimpleErrorPageHandler.java:76)
        at io.undertow.server.handlers.CanonicalPathHandler.handleRequest(CanonicalPathHandler.java:49)
        at io.undertow.server.handlers.ChannelUpgradeHandler.handleRequest(ChannelUpgradeHandler.java:158)
        at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
        at io.undertow.server.protocol.http.HttpReadListener.handleEventWithNoRunningRequest(HttpReadListener.java:232)
        at io.undertow.server.protocol.http.HttpReadListener.handleEvent(HttpReadListener.java:130)
        at io.undertow.server.protocol.http.HttpOpenListener.handleEvent(HttpOpenListener.java:145)
        at io.undertow.server.protocol.http.HttpOpenListener.handleEvent(HttpOpenListener.java:92)
        at io.undertow.server.protocol.http.HttpOpenListener.handleEvent(HttpOpenListener.java:51)
        at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
        at org.xnio.ChannelListeners$10.handleEvent(ChannelListeners.java:291)
        at org.xnio.ChannelListeners$10.handleEvent(ChannelListeners.java:286)
        at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
        at org.xnio.nio.QueuedNioTcpServer$1.run(QueuedNioTcpServer.java:121)
        at org.xnio.nio.WorkerThread.safeRun(WorkerThread.java:580)
        at org.xnio.nio.WorkerThread.run(WorkerThread.java:464)
      Caused by: java.lang.NoSuchMethodException: io.undertow.server.handlers.ByteRangeHandler.<init>(io.undertow.server.HttpHandler)
        at java.lang.Class.getConstructor0(Class.java:3082)
        at java.lang.Class.getConstructor(Class.java:1825)
        at org.wildfly.extension.undertow.deployment.ConfiguredHandlerWrapper.wrap(ConfiguredHandlerWrapper.java:55)
        ... 24 more
      

      The problem seems to be here in the org.wildfly.extension.undertow.deployment.ConfiguredHandlerWrapper.

      Attachments

        Activity

          People

            tomazcerar Tomaž Cerar (Inactive)
            slowtrailrunner Jason Holmberg (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: