Я изо всех сил пытался заставить веб-приложение работать в контексте корневого приложения в Karaf 2.2.0 (оно прекрасно работает в Karaf 2.1.4).Я смог выделить проблему, чтобы ее можно было легко скопировать с помощью примера WAR Tomcat.
Запустите следующую команду от Karaf:
osgi: install -s webbundle: http://tomcat.apache.org/tomcat-5.5-doc/appdev/sample/sample.war?Bundle-SymbolicName=tomcat-sample&Webapp-Context=/anything
Доступ к приложению из веб-браузера (http://localhost:8181/anything/index.html)
- Удалите образец пакета
Переустановите пакет, используя корневой контекстный путь, с помощью следующей команды:
osgi: install -s webbundle: http://tomcat.apache.org/tomcat-5.5-doc/appdev/sample/sample.war?Bundle-SymbolicName=tomcat-sample&Webapp-Context=/
Попытка получить доступ к приложению из веб-браузера (http://localhost:8181/index.html)
- Обратите внимание на ошибку 404.
При просмотре журналов выясняется, что когда веб-приложение находится в корневом приложениив контексте он добавляет «/ default /» к любому запросу. Например, при попытке доступа к /index.html он просматривается в /default/index.html, не может найти страницу и возвращает ошибку «не найден» (см.Для получения более подробной информации вы можете посмотреть в журнале ниже.
Кто-нибудь знает, как решить эту проблему?
ВЫХОД ЛОГАДА
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