diff --git a/pax-web-jetty/src/main/java/org/ops4j/pax/web/service/jetty/internal/JettyServerWrapper.java b/pax-web-jetty/src/main/java/org/ops4j/pax/web/service/jetty/internal/JettyServerWrapper.java index e5d0e432bb..61ef2cae64 100644 --- a/pax-web-jetty/src/main/java/org/ops4j/pax/web/service/jetty/internal/JettyServerWrapper.java +++ b/pax-web-jetty/src/main/java/org/ops4j/pax/web/service/jetty/internal/JettyServerWrapper.java @@ -1018,8 +1018,8 @@ public void visitOsgiContextModelChange(OsgiContextModelChange change) { } } - // and the highest ranked context should be registered as OSGi service (if it wasn't registered) - highestRankedContext.register(); +// // and the highest ranked context should be registered as OSGi service (if it wasn't registered) +// highestRankedContext.register(); } if (hasStopped) { @@ -2425,6 +2425,10 @@ private void ensureServletContextStarted(PaxWebServletContextHandler sch) { sch.start(); dynamicContext.rememberAttributesFromSCIs(); + + // only now, according to https://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.war.html#d0e100694 + // register the servlet context + highestRankedContext.register(); } catch (Exception e) { LOG.error(e.getMessage(), e); } diff --git a/pax-web-undertow/src/main/java/org/ops4j/pax/web/service/undertow/internal/UndertowServerWrapper.java b/pax-web-undertow/src/main/java/org/ops4j/pax/web/service/undertow/internal/UndertowServerWrapper.java index c2b6ca0090..a0dd4725b3 100644 --- a/pax-web-undertow/src/main/java/org/ops4j/pax/web/service/undertow/internal/UndertowServerWrapper.java +++ b/pax-web-undertow/src/main/java/org/ops4j/pax/web/service/undertow/internal/UndertowServerWrapper.java @@ -1384,8 +1384,8 @@ public void visitOsgiContextModelChange(OsgiContextModelChange change) { } } - // and the highest ranked context should be registered as OSGi service (if it wasn't registered) - highestRankedContext.register(); +// // and the highest ranked context should be registered as OSGi service (if it wasn't registered) +// highestRankedContext.register(); } DeploymentInfo deploymentInfo = deploymentInfos.get(contextPath); if (deploymentInfo != null) { @@ -2908,6 +2908,10 @@ public String rewriteUrl(String originalUrl, String sessionId) { // actual registration of "context" in Undertow's path handler. pathHandler.addPrefixPath(contextPath, handler); + + // only now, according to https://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.war.html#d0e100694 + // register the servlet context + highestRankedContext.register(); } catch (ServletException e) { throw new IllegalStateException("Can't start Undertow context " + contextPath + ": " + e.getMessage(), e);