karaf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alex Soto (Jira)" <j...@apache.org>
Subject [jira] [Created] (KARAF-6633) Unable to bind servlet to specific HttpConnectors
Date Tue, 10 Mar 2020 16:19:00 GMT
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)

Mime
View raw message