You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@karaf.apache.org by yourang <ad...@lmco.com> on 2011/04/19 00:25:33 UTC

Cannot Run WAR From Root Context in Karaf 2.2.0

I have been struggling to get an web application to run in the root
application context in Karaf 2.2.0 (it works fine in Karaf 2.1.4).  I have
been able to isolate the issue to something easily duplicate using the
Tomcat sample WAR.  

1. Run the following command from Karaf:

osgi:install -s
webbundle:http://tomcat.apache.org/tomcat-5.5-doc/appdev/sample/sample.war?Bundle-SymbolicName=tomcat-sample&Webapp-Context=/anything

2. Access the app from your web browser
(http://localhost:8181/anything/index.html)
3. Uninstall the sample bundle 
4. Reinstall the bundle using the root context path with the following
command:

osgi:install -s
webbundle:http://tomcat.apache.org/tomcat-5.5-doc/appdev/sample/sample.war?Bundle-SymbolicName=tomcat-sample&Webapp-Context=/

5. Attempt to access the app from your web browser
(http://localhost:8181/index.html)
6. Note the 404 error.

Looking at the logs, it appears that when a web app is in the root
application context, it prepends a "/default/" to any request.  For example,
when trying to access /index.html it looks in /default/index.html, fails to
find the page, and returns a not found error (see the log output below for
more details).

Does anyone know how to resolve this issue?

----------------------------------------------------------------------

LOG OUTPUT 

15:14:46,270 | DEBUG | 30 - /index.html | log                              |
.eclipse.jetty.util.log.Slf4jLog   70 | 43 - org.eclipse.jetty.util -
7.2.2.v20101205 | REQUEST /index.html on
org.eclipse.jetty.server.nio.SelectChannelConnector$3@693a1324
15:14:46,270 | DEBUG | 30 - /index.html | ServerModel                      |
eb.service.spi.model.ServerModel  268 | 52 - org.ops4j.pax.web.pax-web-spi -
1.0.1 | Matching [/index.html]...
15:14:46,270 | DEBUG | 30 - /index.html | ServerModel                      |
eb.service.spi.model.ServerModel  292 | 52 - org.ops4j.pax.web.pax-web-spi -
1.0.1 | Path [/index.html] matched to
{pattern=/.*,model=ResourceModel{id=org.ops4j.pax.web.service.spi.model.ResourceModel-22,name=default,urlPatterns=[/],alias=/,servlet=ResourceServlet{context=/,alias=/,name=default},initParams={},context=ContextModel{id=org.ops4j.pax.web.service.spi.model.ContextModel-21,name=,httpContext=org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext@3942ef25,contextParams={webapp.context=}}}}
15:14:46,270 | DEBUG | 30 - /index.html | log                              |
.eclipse.jetty.util.log.Slf4jLog   70 | 43 - org.eclipse.jetty.util -
7.2.2.v20101205 | Got Session ID 17kb0ch4hv02w1ennfxju5owpw from cookie
15:14:46,270 | DEBUG | 30 - /index.html | log                              |
.eclipse.jetty.util.log.Slf4jLog   70 | 43 - org.eclipse.jetty.util -
7.2.2.v20101205 |
sessionManager=org.eclipse.jetty.server.session.HashSessionManager@7d8aecf1
15:14:46,271 | DEBUG | 30 - /index.html | log                              |
.eclipse.jetty.util.log.Slf4jLog   70 | 43 - org.eclipse.jetty.util -
7.2.2.v20101205 | session=null
15:14:46,271 | DEBUG | 30 - /index.html | log                              |
.eclipse.jetty.util.log.Slf4jLog   70 | 43 - org.eclipse.jetty.util -
7.2.2.v20101205 | servlet=default
15:14:46,271 | DEBUG | 30 - /index.html | log                              |
.eclipse.jetty.util.log.Slf4jLog   70 | 43 - org.eclipse.jetty.util -
7.2.2.v20101205 | servlet holder=
15:14:46,271 | DEBUG | 30 - /index.html | HttpServiceContext               |
etty.internal.HttpServiceContext  115 | 54 - org.ops4j.pax.web.pax-web-jetty
- 1.0.1 | Handling request for [/index.html] using http context
[org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext@3942ef25]
15:14:46,271 | DEBUG | 30 - /index.html | log                              |
.eclipse.jetty.util.log.Slf4jLog   70 | 43 - org.eclipse.jetty.util -
7.2.2.v20101205 | chain=
15:14:46,272 | DEBUG | 30 - /index.html | WebAppWebContainerContext        |
r.war.internal.WebAppHttpContext  113 | 64 -
org.ops4j.pax.web.pax-web-extender-war - 1.0.1 | Searching bundle
[tomcat-sample [97]] for resource [default/index.html], normalized to
[default/index.html]
15:14:46,272 | DEBUG | 30 - /index.html | WebAppWebContainerContext        |
r.war.internal.WebAppHttpContext  140 | 64 -
org.ops4j.pax.web.pax-web-extender-war - 1.0.1 | Resource not found
15:14:46,273 | DEBUG | 30 - /index.html | log     

--
View this message in context: http://karaf.922171.n3.nabble.com/Cannot-Run-WAR-From-Root-Context-in-Karaf-2-2-0-tp2836600p2836600.html
Sent from the Karaf - Dev mailing list archive at Nabble.com.

Re: Cannot Run WAR From Root Context in Karaf 2.2.0

Posted by yourang <ad...@lmco.com>.
This issue has been logged in JIRA as Issue 577 (
https://issues.apache.org/jira/browse/KARAF-577
https://issues.apache.org/jira/browse/KARAF-577 )

--
View this message in context: http://karaf.922171.n3.nabble.com/Cannot-Run-WAR-From-Root-Context-in-Karaf-2-2-0-tp2836600p2839407.html
Sent from the Karaf - Dev mailing list archive at Nabble.com.

Re: Cannot Run WAR From Root Context in Karaf 2.2.0

Posted by Achim Nierbeck <bc...@googlemail.com>.
could you please open a issue for that.

I'll probably take a look at it then. Sounds like a bug of pax-web.

thanks, Achim

2011/4/19 yourang <ad...@lmco.com>:
> I have been struggling to get an web application to run in the root
> application context in Karaf 2.2.0 (it works fine in Karaf 2.1.4).  I have
> been able to isolate the issue to something easily duplicate using the
> Tomcat sample WAR.
>
> 1. Run the following command from Karaf:
>
> osgi:install -s
> webbundle:http://tomcat.apache.org/tomcat-5.5-doc/appdev/sample/sample.war?Bundle-SymbolicName=tomcat-sample&Webapp-Context=/anything
>
> 2. Access the app from your web browser
> (http://localhost:8181/anything/index.html)
> 3. Uninstall the sample bundle
> 4. Reinstall the bundle using the root context path with the following
> command:
>
> osgi:install -s
> webbundle:http://tomcat.apache.org/tomcat-5.5-doc/appdev/sample/sample.war?Bundle-SymbolicName=tomcat-sample&Webapp-Context=/
>
> 5. Attempt to access the app from your web browser
> (http://localhost:8181/index.html)
> 6. Note the 404 error.
>
> Looking at the logs, it appears that when a web app is in the root
> application context, it prepends a "/default/" to any request.  For example,
> when trying to access /index.html it looks in /default/index.html, fails to
> find the page, and returns a not found error (see the log output below for
> more details).
>
> Does anyone know how to resolve this issue?
>
> ----------------------------------------------------------------------
>
> LOG OUTPUT
>
> 15:14:46,270 | DEBUG | 30 - /index.html | log                              |
> .eclipse.jetty.util.log.Slf4jLog   70 | 43 - org.eclipse.jetty.util -
> 7.2.2.v20101205 | REQUEST /index.html on
> org.eclipse.jetty.server.nio.SelectChannelConnector$3@693a1324
> 15:14:46,270 | DEBUG | 30 - /index.html | ServerModel                      |
> eb.service.spi.model.ServerModel  268 | 52 - org.ops4j.pax.web.pax-web-spi -
> 1.0.1 | Matching [/index.html]...
> 15:14:46,270 | DEBUG | 30 - /index.html | ServerModel                      |
> eb.service.spi.model.ServerModel  292 | 52 - org.ops4j.pax.web.pax-web-spi -
> 1.0.1 | Path [/index.html] matched to
> {pattern=/.*,model=ResourceModel{id=org.ops4j.pax.web.service.spi.model.ResourceModel-22,name=default,urlPatterns=[/],alias=/,servlet=ResourceServlet{context=/,alias=/,name=default},initParams={},context=ContextModel{id=org.ops4j.pax.web.service.spi.model.ContextModel-21,name=,httpContext=org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext@3942ef25,contextParams={webapp.context=}}}}
> 15:14:46,270 | DEBUG | 30 - /index.html | log                              |
> .eclipse.jetty.util.log.Slf4jLog   70 | 43 - org.eclipse.jetty.util -
> 7.2.2.v20101205 | Got Session ID 17kb0ch4hv02w1ennfxju5owpw from cookie
> 15:14:46,270 | DEBUG | 30 - /index.html | log                              |
> .eclipse.jetty.util.log.Slf4jLog   70 | 43 - org.eclipse.jetty.util -
> 7.2.2.v20101205 |
> sessionManager=org.eclipse.jetty.server.session.HashSessionManager@7d8aecf1
> 15:14:46,271 | DEBUG | 30 - /index.html | log                              |
> .eclipse.jetty.util.log.Slf4jLog   70 | 43 - org.eclipse.jetty.util -
> 7.2.2.v20101205 | session=null
> 15:14:46,271 | DEBUG | 30 - /index.html | log                              |
> .eclipse.jetty.util.log.Slf4jLog   70 | 43 - org.eclipse.jetty.util -
> 7.2.2.v20101205 | servlet=default
> 15:14:46,271 | DEBUG | 30 - /index.html | log                              |
> .eclipse.jetty.util.log.Slf4jLog   70 | 43 - org.eclipse.jetty.util -
> 7.2.2.v20101205 | servlet holder=
> 15:14:46,271 | DEBUG | 30 - /index.html | HttpServiceContext               |
> etty.internal.HttpServiceContext  115 | 54 - org.ops4j.pax.web.pax-web-jetty
> - 1.0.1 | Handling request for [/index.html] using http context
> [org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext@3942ef25]
> 15:14:46,271 | DEBUG | 30 - /index.html | log                              |
> .eclipse.jetty.util.log.Slf4jLog   70 | 43 - org.eclipse.jetty.util -
> 7.2.2.v20101205 | chain=
> 15:14:46,272 | DEBUG | 30 - /index.html | WebAppWebContainerContext        |
> r.war.internal.WebAppHttpContext  113 | 64 -
> org.ops4j.pax.web.pax-web-extender-war - 1.0.1 | Searching bundle
> [tomcat-sample [97]] for resource [default/index.html], normalized to
> [default/index.html]
> 15:14:46,272 | DEBUG | 30 - /index.html | WebAppWebContainerContext        |
> r.war.internal.WebAppHttpContext  140 | 64 -
> org.ops4j.pax.web.pax-web-extender-war - 1.0.1 | Resource not found
> 15:14:46,273 | DEBUG | 30 - /index.html | log
>
> --
> View this message in context: http://karaf.922171.n3.nabble.com/Cannot-Run-WAR-From-Root-Context-in-Karaf-2-2-0-tp2836600p2836600.html
> Sent from the Karaf - Dev mailing list archive at Nabble.com.
>