Sure... let me get something stripped down to the essentials.... Maybe show how I got it to work, and how I would have expected it to work, given the current docs? Esp if I can get it working with all annotations (via annotations on JspMapping and ResourceMapping classes) - no Activator class,
I don't know if it's necessarily a bug, but rather a disconnect or clarification (possibly just in documentation/samples). At a minimum, it might make a good basis for a sample? I can't be the only one trying to do a Servlet->forward to JSP->Custom tags in jsp. Pretty standard scenario. On Friday, June 16, 2017 at 4:27:52 PM UTC-4, Achim Nierbeck wrote: > > 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] > <javascript:>>: > >> 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/samples/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/samples/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/samples/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] <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.
