[ https://issues.apache.org/jira/browse/KARAF-6633?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jean-Baptiste Onofré updated KARAF-6633: ---------------------------------------- Labels: documentation http web (was: ) > Unable to bind servlet to specific HttpConnectors > ------------------------------------------------- > > Key: KARAF-6633 > URL: https://issues.apache.org/jira/browse/KARAF-6633 > Project: Karaf > Issue Type: Bug > Components: karaf > Affects Versions: 4.2.8 > Reporter: Alex Soto > Assignee: Jean-Baptiste Onofré > Priority: Major > Labels: documentation, http, web > Fix For: 4.3.0, 4.2.9 > > > On a fresh Karaf run: > {quote}feature:install war > {quote} > Logout, then configure a Jetty connector _jettyConn1_ in _etc/jetty.xml:_ > > {color:#008080}<{color}{color:#3f7f7f}Call{color} > {color:#7f007f}name{color}{color:#000000}={color}"addConnector"{color:#008080}>{color} > {color:#008080}<{color}Arg{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}New{color} > {color:#7f007f}class{color}{color:#000000}={color}"org.eclipse.jetty.server.ServerConnector"{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}Arg{color} > {color:#7f007f}name{color}{color:#000000}={color}"server"{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}Ref{color} > {color:#7f007f}refid{color}={color:#2a00ff}"Server"{color} > {color:#008080}/>{color} > {color:#008080}</{color}{color:#3f7f7f}Arg{color}{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}Arg{color} > {color:#7f007f}name{color}{color:#000000}={color}"factories"{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}Array{color} > {color:#7f007f}type{color}{color:#000000}={color}"org.eclipse.jetty.server.ConnectionFactory"{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}Item{color}{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}New{color} > {color:#7f007f}class{color}{color:#000000}={color}"org.eclipse.jetty.server.HttpConnectionFactory"{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}Arg{color} > {color:#7f007f}name{color}={color:#2a00ff}"config"{color}{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}Ref{color} > {color:#7f007f}refid{color}={color:#2a00ff}"httpConfig"{color} > {color:#008080}/>{color} > {color:#008080}</{color}{color:#3f7f7f}Arg{color}{color:#008080}>{color} > {color:#008080}</{color}{color:#3f7f7f}New{color}{color:#008080}>{color} > {color:#008080}</{color}{color:#3f7f7f}Item{color}{color:#008080}>{color} > {color:#008080}</{color}{color:#3f7f7f}Array{color}{color:#008080}>{color} > {color:#008080}</{color}{color:#3f7f7f}Arg{color}{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}Set{color} > {color:#7f007f}name{color}={color:#2a00ff}"host"{color}{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}Property{color} > {color:#7f007f}name{color}{color:#000000}={color}"jetty.host" > {color:#7f007f}default{color}{color:#000000}={color}"localhost" > {color:#008080}/>{color} > {color:#008080}</{color}{color:#3f7f7f}Set{color}{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}Set{color} > {color:#7f007f}name{color}={color:#2a00ff}"port"{color}{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}Property{color} > {color:#7f007f}name{color}{color:#000000}={color}"jetty.port" > {color:#7f007f}default{color}{color:#000000}={color}"8282" > {color:#008080}/>{color} > {color:#008080}</{color}{color:#3f7f7f}Set{color}{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}Set{color} > {color:#7f007f}name{color}{color:#000000}={color}"idleTimeout"{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}Property{color} > {color:#7f007f}name{color}{color:#000000}={color}"http.timeout" > {color:#7f007f}default{color}{color:#000000}={color}"30000" > {color:#008080}/>{color} > {color:#008080}</{color}{color:#3f7f7f}Set{color}{color:#008080}>{color} > {color:#008080}<{color}{color:#3f7f7f}Set{color} > {color:#7f007f}name{color}={color:#2a00ff}"name"{color}{color:#008080}>{color}jettyConn1{color:#008080}</{color}{color:#3f7f7f}Set{color}{color:#008080}>{color} > {color:#008080}</{color}{color:#3f7f7f}New{color}{color:#008080}>{color} > {color:#008080}</{color}Arg{color:#008080}>{color} > {color:#008080}</{color}Call{color:#008080}>{color} > Now run Karaf again and run the command: > {quote}bundle:install --start > mvn:org.ops4j.pax.web.samples/whiteboard-extended/7.2.14 > {quote} > This will install sample bundle from Pax-Web project: > [https://github.com/ops4j/org.ops4j.pax.web/tree/web-7.2.14/samples/whiteboard-extended] > > > Which registers a servlet to bind to the _jettyConn1_ configured in jetty.xml. > I can verify the servlets are deployed: > karaf@root()> http:list > ID │ Servlet │ Servlet-Name │ State > │ Alias │ > Url───┼──────────────────────┼──────────────────────────────┼─────────────┼───────────────────────────┼─309 > │ WhiteboardServlet │ ServletModel-26 │ Deployed │ > /whiteboard │ [/whiteboard/*]309 │ WhiteboardServlet │ > ServletModel-28 │ Deployed │ /whiteboard2 │ > [/whiteboard2/*]309 │ WhiteboardServlet │ ServletModel-30 > │ Deployed │ /whiteboard3 │ [/whiteboard3/*]309 │ > WhiteboardServlet │ ServletModel-32 │ Deployed │ > /whiteboard4 │ [/whiteboard4/*] > > But Jetty is responding 404 to a GET request on > [http://localhost:8282/whiteboard], same for all other ports. > > I see this warning in the log file: > > 2020-03-10T10:12:07,497 | WARN | features-3-thread-1 | ContextHandler > | 245 - org.eclipse.jetty.util - 9.4.22.v20191022 | ContextHandler > [+localhost+, @jettyConn1] has a connector only entry e.g. "@connector" and > one or more host only entries. > The host entries will be ignored to match legacy behavior. To clear this > warning remove the host entries or update to use at least one host@connector > syntax entry that will match a host for an specific connector > > The expected result is that a GET request to > [http://localhost:8282/whiteboard] responds 200, and 404 to > [http://localhost:8181/whiteboard|http://localhost:8282/whiteboard] because > the servlet is registered to bind to the _jettyConn1_: > > {quote}contextMappingParams.put(ExtenderConstants.PROPERTY_HTTP_CONNECTORS, > "jettyConn1");{quote} > -- This message was sent by Atlassian Jira (v8.3.4#803005)