You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Alex Soto (Jira)" <ji...@apache.org> on 2020/03/10 16:19:00 UTC
[jira] [Created] (KARAF-6633) Unable to bind servlet to specific
HttpConnectors
Alex Soto created KARAF-6633:
--------------------------------
Summary: 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
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)