Ok, maybe you can provide a little test project, we could use it as a sample and as foundation for an integration test. Sounds like you have a special condition we don't have covered right now. So it might be a bug.
regards, Achim 2017-06-16 22:06 GMT+02:00 Eben Stewart <[email protected]>: > I'm using 6.0.6.snapshot > > On Friday, June 16, 2017 at 3:10:56 PM UTC-4, Achim Nierbeck wrote: >> >> Hi >> >> are you looking for this? >> https://github.com/ops4j/org.ops4j.pax.web/blob/master/sampl >> es/whiteboard-ds/src/main/java/org/ops4j/pax/web/samples >> /whiteboard/ds/WhiteboardServletWithContext.java >> >> That should work, which version of Pax Web are you using? >> >> regards, Achim >> >> >> 2017-06-16 20:25 GMT+02:00 Eben Stewart <[email protected]>: >> >>> One step further.... >>> >>> This works: >>> >>> final HttpContextMapping httpContextMapping = new HttpContextMapping() { >>> >>> static final String HTTP_CONTEXT_ID = "customContext"; >>> >>> @Override >>> public String getHttpContextId() { >>> return HTTP_CONTEXT_ID; >>> } >>> >>> @Override >>> public String getPath() { >>> return "customContext"; >>> } >>> >>> @Override >>> public Map<String, String> getParameters() { >>> return null; >>> } >>> >>> @Override >>> public HttpContext getHttpContext() { >>> return null; >>> } >>> }; >>> >>> >>> Adding that, as well as calling setHttpContextId("customContext") on >>> both the resourceMapping and jspMapping. >>> >>> A servlet also works, but only if I set >>> >>> ExtenderConstants.PROPERTY_HTTP_CONTEXT_ID >>> >>> instead of >>> >>> HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_SELECT >>> >>> Is this expected behavior? >>> >>> On Friday, June 16, 2017 at 11:19:00 AM UTC-4, Eben Stewart wrote: >>>> >>>> Ok, still trying to narrow this down to just the JSP functionality.... >>>> >>>> >>>> What I am trying to accomplish: >>>> 1) As many DS-based classes, keeping to OSGI standard annotations as >>>> much as possible >>>> 2) use of @Component instead of @WebServlet, so that wiring to OSGI >>>> components can be done in the servlets using primarily annotations (since >>>> @WebServlet are not OSGI components, they are not included in the lifecycle >>>> - DS annotations do not work) >>>> 3) must be able to have separate web context roots for multiple >>>> applications on one server >>>> 4) and JSPs, preferably with custom tags (using on-the-fly compiling >>>> w/Jasper) >>>> >>>> Here's a real simple setup: a single jsp (/index.jsp) that references >>>> the tag "layout.tag" in /WEB-INF/tags - NOT tlds >>>> >>>> A single Activator class with this start() method: >>>> >>>> public void start(final BundleContext bundleContext) throws Exception { >>>> final DefaultResourceMapping rootResourceMapping = new >>>> DefaultResourceMapping(); >>>> rootResourceMapping.setAlias("/"); >>>> rootResourceMapping.setPath(""); >>>> rootResourceMappingRegistration = >>>> bundleContext.registerService(ResourceMapping.class, >>>> rootResourceMapping, null); >>>> >>>> final DefaultJspMapping jspMapping = new DefaultJspMapping(); >>>> jspMappingRegistration = bundleContext.registerService(JspMapping.class, >>>> jspMapping, null); >>>> } >>>> >>>> in root of bundle: >>>> >>>> - index.jsp >>>> - WEB-INF >>>> - tags >>>> layout.tag >>>> >>>> This all works as expected. localhost:8080/index.jsp properly shows >>>> the jsp page, including the proper use of the custom tag. >>>> >>>> I guess the real question is, how do you properly setup a custom >>>> context root via HttpContext, without the use of a war? >>>> >>>> What's the best practice for getting JSPs to work under a different >>>> ContextRoot (as this also affects session cookie paths)? How would I >>>> modify this start() to associate a context root so it works under >>>> http://localhost:8080/customcontext/index.jsp? >>>> >>>> >>>> >>>> On Friday, June 16, 2017 at 7:09:56 AM UTC-4, Achim Nierbeck wrote: >>>>> >>>>> Ahh .. I already thought you would be running a war project. >>>>> Good to know that that is actually working. >>>>> In your case you need to make sure you also have registered the >>>>> taglibs as resources to your project. >>>>> Take a look at [1], it should be similar. >>>>> If that still doesn't seem to work we might hit a bug or something we >>>>> didn't test yet fully. >>>>> >>>>> regards, Achim >>>>> >>>>> [1] - https://github.com/ops4j/org.ops4j.pax.web/tree/master/sam >>>>> ples/helloworld-jsp >>>>> >>>>> 2017-06-15 23:06 GMT+02:00 Eben Stewart <[email protected]>: >>>>> >>>>>> So it seems a little bit more narrow - it *does* work, but only when >>>>>> Web-ContextPath is specified in the Manifest (therefore acting as a war?) >>>>>> >>>>>> However, if using Whiteboard-DS, this is not used, instead a >>>>>> ServletContextHelper with a >>>>>> HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_PATH >>>>>> set is used. It will compile the JSP just fine in the context path, but >>>>>> not find the .tag file in the tags directory. >>>>>> >>>>>> Or I am configuring/thinking about this the wrong way, which is >>>>>> certainly plausible. >>>>>> >>>>>> Would it be helpful to attach the project zip? >>>>>> >>>>>> On Thursday, June 15, 2017 at 2:06:44 PM UTC-4, Achim Nierbeck wrote: >>>>>>> >>>>>>> hmmm ... guess we need to take a closer look at it. >>>>>>> could you open an issue for that? >>>>>>> >>>>>>> regards, Achim >>>>>>> >>>>>>> >>>>>>> 2017-06-15 19:49 GMT+02:00 Eben Stewart <[email protected]>: >>>>>>> >>>>>>>> I tried that - Jasper compiler complains about the path not >>>>>>>> starting with /WEB-INF/ >>>>>>>> >>>>>>>> >>>>>>>> On Thursday, June 15, 2017 at 11:20:48 AM UTC-4, Achim Nierbeck >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> I'm not sure, the only thing that crosses my mind right now would >>>>>>>>> be the / before the WEB-INF, >>>>>>>>> could you give it a try without the slash? >>>>>>>>> >>>>>>>>> If that still doesn't work out, please open an issue at pax web >>>>>>>>> for that. >>>>>>>>> OTH might want to checkout how the jsf and the primefaces samples >>>>>>>>> are doing this. [1] >>>>>>>>> >>>>>>>>> regards, Achim >>>>>>>>> >>>>>>>>> [1] - https://github.com/ops4j/org.ops4j.pax.web/tree/master/sam >>>>>>>>> ples/war-jsf-primefaces >>>>>>>>> >>>>>>>>> 2017-06-14 20:57 GMT+02:00 Eben Stewart <[email protected]>: >>>>>>>>> >>>>>>>>>> Very simple example... tried this under standard WAR/Tomcat >>>>>>>>>> environment, and it works fine. >>>>>>>>>> >>>>>>>>>> In pax-web, using extended DefaultJspMapping class for JSPs, >>>>>>>>>> directory structure of jar shows index.jsp in the root, and >>>>>>>>>> layout.tag >>>>>>>>>> in /WEB-INF/tags. It definitely sees the jsps (with the custom tag, >>>>>>>>>> they >>>>>>>>>> work fine) >>>>>>>>>> >>>>>>>>>> index.jsp: >>>>>>>>>> <!DOCTYPE html> >>>>>>>>>> <%@taglib prefix="my" tagdir="/WEB-INF/tags"%> >>>>>>>>>> >>>>>>>>>> <my:layout> >>>>>>>>>> <jsp:attribute name="body"> >>>>>>>>>> <div> >>>>>>>>>> Test >>>>>>>>>> </div> >>>>>>>>>> </jsp:attribute> >>>>>>>>>> </my:layout> >>>>>>>>>> >>>>>>>>>> /WEB-INF/tags/layout.tag: >>>>>>>>>> <!DOCTYPE html> >>>>>>>>>> <%@tag description="LayoutTemplate" pageEncoding="UTF-8"%> >>>>>>>>>> <%@attribute name="body" fragment="true" %> >>>>>>>>>> >>>>>>>>>> <html> >>>>>>>>>> <body> >>>>>>>>>> <jsp:invoke fragment="body"/> >>>>>>>>>> </body> >>>>>>>>>> </html> >>>>>>>>>> >>>>>>>>>> However, when I attempt to load the page: >>>>>>>>>> >>>>>>>>>> org.apache.jasper.JasperException: /index.jsp (line: 4, column: 0) >>>>>>>>>> No tag "layout" defined in tag library imported with prefix "my" >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Am I missing a directive somewhere? >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> -- >>>>>>>>>> ------------------ >>>>>>>>>> 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. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> 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. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> 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. >>> >> >> >> >> -- >> >> 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. > -- 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.
