Hi Bengt, regarding issue #1 ... could you try to do something as "documented" in this[1] integration test? If you abandon the first parameter, with only the alias, it's always bound to the root "/".
regarding issue#2 ... I'm not sure yet, but might be solved with #1 done right ;) regards, Achim [1] - https://github.com/ops4j/org.ops4j.pax.web/blob/master/pax-web-itest/pax-web-itest-container/pax-web-itest-container-jetty/src/test/java/org/ops4j/pax/web/itest/jetty/RootAliasIntegrationTest.java 2016-11-07 17:40 GMT+01:00 Bengt Rodehav <[email protected]>: > I'm using Pax-Web in Karaf 4.0.7. > > I have two problems with aliases: > > *Problem #1* > > If I register resources for the context path "/" (i e the root) as follows: > > mWebService.registerResources("/", "/webroot", mHttpContext); > > Then my application is reachable at: > > http://localhost:8183//admin/login > > but not at: > > http://localhost:8183/admin/login > > I want to get rid of the double slash. However if I try this instead: > > mWebService.registerResources("", "/webroot", mHttpContext); > > Then I get: > > Caused by: java.lang.IllegalArgumentException: Alias does not start with > slash (/) > at org.ops4j.pax.web.service.spi.model.ServletModel. > validateAlias(ServletModel.java:169) > at org.ops4j.pax.web.service.spi.model.ServletModel.<init>( > ServletModel.java:53) > at org.ops4j.pax.web.service.spi.model.ResourceModel.<init>( > ResourceModel.java:29) > at org.ops4j.pax.web.service.internal.HttpServiceStarted. > registerResources(HttpServiceStarted.java:262) > at org.ops4j.pax.web.service.internal.HttpServiceProxy. > registerResources(HttpServiceProxy.java:71) > at > org.ops4j.pax.web.service.WebContainer$$Proxy.registerResources(Unknown > Source) > at se.digia.hp.web.HpWebService.__M_init(HpWebService.java:133) > at se.digia.hp.web.HpWebService.init(HpWebService.java) > at se.digia.hp.web.HpWebService.__M_starting(HpWebService.java:47) > at se.digia.hp.web.HpWebService.starting(HpWebService.java) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method)[:1.8.0_74] > at sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:62)[:1.8.0_74] > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43)[:1.8.0_74] > at java.lang.reflect.Method.invoke(Method.java:498)[:1.8.0_74] > at org.apache.felix.ipojo.util.Callback.call(Callback.java: > 237)[50:org.apache.felix.ipojo:1.12.1] > at org.apache.felix.ipojo.util.Callback.call(Callback.java: > 193)[50:org.apache.felix.ipojo:1.12.1] > at org.apache.felix.ipojo.handlers.lifecycle.callback. > LifecycleCallback.call(LifecycleCallback.java:86)[50: > org.apache.felix.ipojo:1.12.1] > at org.apache.felix.ipojo.handlers.lifecycle.callback. > LifecycleCallbackHandler.__M_stateChanged(LifecycleCallbackHandler.java: > 162)[50:org.apache.felix.i > pojo:1.12.1] > > How can I get rid of the "double slash"? > > *Problem #2* > > Assume that my web application resides at the context url: > > http://localhost:8183/hp > > I also register a separate resource directory directly in jetty with the > following configuration (as I was helped by Achim on this forum): > > <?xml version="1.0"?> > <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" " > http://www.eclipse.org/jetty/configure_9_0.dtd"> > > <Configure id="Server" class="org.eclipse.jetty.server.Server"> > <Get name="handler"> > <Call name="addHandler"> > <Arg> > <New class="org.eclipse.jetty.server.handler.ContextHandler"> > <Set name="contextPath">/logo</Set> > <Set name="handler"> > <New class="org.eclipse.jetty.server.handler.ResourceHandler"> > <Set name="resourceBase">../../common/etc/logo</Set> > <Set name="directoriesListed">true</Set> > </New> > </Set> > </New> > </Arg> > </Call> > </Get> > </Configure> > > This works fine. But when I try to move the application up to the root > (which has the double slash problem as described in Problem #1) to the > following url: > > http://localhost:8183// > > Then the separate resource via my jetty.xml does not work. It seems that > it cannot be a descendant of the context path I use for my web application. > But, since this is a public web application, with a predetermined url, it > must reside at the root. Then there is no context path that works for my > separate resource directory since all paths are descendants of root. > > This seems a bit weird... > > /Bengt > > > > -- > -- > ------------------ > OPS4J - http://www.ops4j.org - [email protected] > > --- > You received this message because you are subscribed to the Google Groups > "OPS4J" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- Apache Member Apache Karaf <http://karaf.apache.org/> Committer & PMC OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & Project Lead blog <http://notizblog.nierbeck.de/> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> Software Architect / Project Manager / Scrum Master -- -- ------------------ OPS4J - http://www.ops4j.org - [email protected] --- You received this message because you are subscribed to the Google Groups "OPS4J" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
