Please find the simplyfied demo at https://github.com/pschyma/servlet-context-test
It's a Gradle build, hope this is ok. A strange observation regarding PAXWEB-1077 -I'm not sure whether my problem is related to this-, but when I remove the context selector from the resources registration then PAXWEB-1077 is not triggered, when I restart the bundle. Greetings, Peter Am Donnerstag, 13. April 2017 17:52:44 UTC+2 schrieb Achim Nierbeck: > > sorry but these provided sources are really hard to read :/ > > do you have a link to the sources, like a github repo? > > regards, Achim > > > 2017-04-13 17:43 GMT+02:00 Peter Schyma <[email protected] <javascript:>>: > >> Hi, >> >> I'm trying to register resources via DS in a shared servlet context but >> the registered ServletContextHelper is called with strange resource name >> parameter values. >> >> @Component( >> service = Object.class, >> scope = ServiceScope.PROTOTYPE, >> property = { >> HttpWhiteboardConstants.HTTP_WHITEBOARD_RESOURCE_PREFIX + "=/web", >> HttpWhiteboardConstants.HTTP_WHITEBOARD_RESOURCE_PATTERN + >> "=/resources/*", >> DemoServletContext.CONTEXT_SERVICE_SELECTOR >> } >> ) >> public class DemoResourceService { >> // nothing to implement >> } >> >> Code hier eingeben... >> >> @Component( >> service = ServletContextHelper.class, >> scope = ServiceScope.BUNDLE, >> property = { >> HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_NAME + "=" + >> DemoServletContext.NAME, >> HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_PATH + "=/demo", >> } >> ) >> public class DemoServletContext >> extends ServletContextHelper { >> >> private static final Logger LOGGER = >> LoggerFactory.getLogger(DemoServletContext.class); >> >> >> public static final String NAME = "demo-ctx"; >> >> >> public static final String CONTEXT_SERVICE_SELECTOR = >> HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_SELECT + >> "=(" + HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_NAME + "=" + >> DemoServletContext.NAME + ")"; >> >> >> private ServletContextHelper delegate; >> >> >> @Activate >> public void activate(BundleContext bundleContext) { >> delegate = new ServletContextHelper(bundleContext.getBundle()) { >> }; >> } >> >> >> @Override >> public URL getResource(String name) { >> LOGGER.info("requested resource: {}", name); >> return delegate.getResource(name); >> } >> >> >> @Override >> public String getMimeType(String name) { >> return delegate.getMimeType(name); >> } >> >> >> @Override >> public Set<String> getResourcePaths(String path) { >> return delegate.getResourcePaths(path); >> } >> >> >> @Override >> public String getRealPath(String path) { >> return delegate.getRealPath(path); >> } >> >> } >> >> >> Using this simple setup and issuing a request for " >> http://localhost:8181/demo/resources/demo.html" prints "requested >> resource: //webdemo.html" in Karaf. >> >> I tested this with Karaf 4.1.1 and Pax Web 6.1.0-SNAPSHOT. >> >> Removing the context selector does not make the resources accessible at " >> http://localhost:8181/resources/demo.html". I don't see any output >> related to looking up the file. Accessing /resources/ emits following in >> the log: >> 2017-04-13 17:35:22,994 | DEBUG | tp1929020177-132 | DefaultHttpContext >> | 240 - org.ops4j.pax.web.pax-web-runtime - 6.1.0.SNAPSHOT >> | Searching bundle [servlet-context-test [242]] for resource [web] >> 2017-04-13 17:35:22,994 | DEBUG | tp1929020177-132 | DefaultHttpContext >> | 240 - org.ops4j.pax.web.pax-web-runtime - 6.1.0.SNAPSHOT >> | Searching bundle [servlet-context-test [242]] for resource [web/index. >> html] >> 2017-04-13 17:35:22,994 | DEBUG | tp1929020177-132 | DefaultHttpContext >> | 240 - org.ops4j.pax.web.pax-web-runtime - 6.1.0.SNAPSHOT >> | Searching bundle [servlet-context-test [242]] for resource [web/index. >> jsp] >> >> Am I missing something? >> >> Thanks >> Peter >> >> -- >> -- >> ------------------ >> OPS4J - http://www.ops4j.org - [email protected] <javascript:> >> >> --- >> 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] <javascript:>. >> 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.
