If the ticket comments can explain what *should* work (esp from an annotation perspective), given the scenario, I can try and help dig around.
On Tuesday, June 20, 2017 at 3:58:48 PM UTC-4, Achim Nierbeck wrote: > > Hi, > > first of all thanks for the issue and the detailed description :) > regarding your first mail, I don't mind questions at all, so shoot as much > as possible at me, I try to answer as much as possible, sometimes I might > not know the answer :) > > Regarding the tracker, yes I really would like to have it backward > compatible, as we just introduced the OSGi compliance with 6, we might > start to deprecate with 7, and maybe get rid of it with 8 ... but that's > something to be worth to consider in the future :) > The ExtenderConstants should always work, we might have missed some > details while bringing those to the HttpWhiteboardConstants ... > Especially the pattern, it might be possible that we missed out on those, > need to check though. > > regards, Achim > > > > 2017-06-20 21:26 GMT+02:00 Eben Stewart <[email protected] > <javascript:>>: > >> Created https://ops4j1.jira.com/projects/PAXWEB/issues/PAXWEB-1106 to >> report what I found (was able to trim it down to one Java file, plus the >> jsp/tag files) >> >> >> On Tuesday, June 20, 2017 at 10:15:26 AM UTC-4, Eben Stewart wrote: >>> >>> (I hope you don't mind all these questions - I am trying to figure out >>> the right way of doing this, and eventually might be able to contribute a >>> patch) >>> >>> So, for that tracker, it should be using both, for backwards compat and >>> OSGI spec, right? >>> >>> Also - for the JspMapping, which HttpWhiteboardConstants should it be >>> looking for to handle url mappings, etc? >>> >>> Same for ResourceMapping..... in the sample, I had to do this: >>> >>> public ResourceMappingService() { >>> setAlias("/"); >>> setPath(""); >>> setHttpContextId(MyHttpContextMapping.HTTP_CONTEXT_ID); >>> } >>> >>> What would be the expected HttpWhiteboardConstants way of doing this? >>> I would expect something like: >>> >>> HttpWhiteboardConstants.HTTP_WHITEBOARD_RESOURCE_PATTERN + "=/", >>> HttpWhiteboardConstants.HTTP_WHITEBOARD_RESOURCE_PREFIX + "=", >>> >>> But I still have not been able to get that to work (hence the original >>> post of this thread) >>> >>> On Tuesday, June 20, 2017 at 2:56:08 AM UTC-4, Achim Nierbeck wrote: >>>> >>>> Hi, >>>> >>>> they actually should use the extender constants, but also the new >>>> HttpWhiteboardConstants :) >>>> >>>> regards, Achim >>>> >>>> 2017-06-20 2:22 GMT+02:00 Eben Stewart <[email protected]>: >>>> >>>>> ok, correct me if I am wrong.... >>>>> >>>>> in HttpContextTracker >>>>> (org.ops4j.pax.web.extender.whiteboard.internal.tracker) >>>>> >>>>> HttpContextElement createHttpContextElement(final >>>>> ServiceReference<HttpContext> serviceReference, final HttpContext >>>>> published) { >>>>> String httpContextId = >>>>> ServicePropertiesUtils.getStringProperty(serviceReference, >>>>> ExtenderConstants.PROPERTY_HTTP_CONTEXT_ID); >>>>> String httpContextPath = >>>>> ServicePropertiesUtils.getStringProperty(serviceReference, >>>>> ExtenderConstants.PROPERTY_HTTP_CONTEXT_PATH); >>>>> >>>>> those should not be using ExtenderConstants? >>>>> >>>>> ... >>>>> >>>>> On Monday, June 19, 2017 at 7:11:20 PM UTC-4, Eben Stewart wrote: >>>>> >>>>>> Sounds good... knowing the history, and the future dev plans, >>>>>> especially if they make it into the OSGI spec, is always good :D >>>>>> >>>>>> I'm taking from your comments that the ExtenderConstants are not long >>>>>> term? It would be better to have an HttpWhiteboardConstants way of >>>>>> doing >>>>>> it? >>>>>> >>>>>> I think all the annotations are there - I will look into seeing what >>>>>> I can do to contribute - still wrapping my head around it all, so I want >>>>>> to >>>>>> have a good understanding of how it's all *supposed* to work. >>>>>> >>>>>> On Monday, June 19, 2017 at 3:07:53 PM UTC-4, Achim Nierbeck wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> thanks for the sample, will see to it. >>>>>>> regarding the comments/remarks, see my comments inline :) >>>>>>> >>>>>>> Achim >>>>>>> >>>>>>> 2017-06-19 14:50 GMT+02:00 Eben Stewart <[email protected]>: >>>>>>> >>>>>>>> Attached is a working example, the smallest I could get it (project >>>>>>>> is bndtools under Eclipse) >>>>>>>> >>>>>>>> A few points that threw me off, that did not seem clear at first >>>>>>>> (although they make sense now) - a lot of it had to do with the >>>>>>>> whiteboard >>>>>>>> extensions to get resources and jsp support - I am not aware if the >>>>>>>> OSGI >>>>>>>> spec even handles those concepts (although the WAR/WAB is). I do like >>>>>>>> this >>>>>>>> way better, as it doesn't make the bundle "special" in the way in >>>>>>>> handles >>>>>>>> servlets, jsps and resources... they are all just services. >>>>>>>> >>>>>>> >>>>>>> Just a bit of History, it might make the picture clearer for you. >>>>>>> The Pax Web Whiteboard extender exists since the WAR/WAB part has >>>>>>> been implemented, and at the time beeing that part also moved into the >>>>>>> OSGi >>>>>>> spec. If you take a look at it, Pax Web and the Pax Url war URL-Handler >>>>>>> are >>>>>>> part of the reference implementation for that part of the OSGi Spec. >>>>>>> So actually the Pax Web Whiteboard extension mechanism is "pretty" >>>>>>> old :) >>>>>>> About 2 years ago an Whiteboard extender mechanism had been added to >>>>>>> the OSGi spec, so we working on Pax Web tried to adapt the existing >>>>>>> code to >>>>>>> the new spec. >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> 1) The use of HttpContextMapping >>>>>>>> >>>>>>>> - There is no default implementation of this, like JspMapping >>>>>>>> and ResourceMapping, so also cannot use annotations to initialize? >>>>>>>> - How to use HttpContextMapping, DefaultHttpContext (or >>>>>>>> shared), and still be able to get to handleSecurity() >>>>>>>> >>>>>>>> >>>>>>> You can retrieve a DefaultHttpContext Instance from the HttpService >>>>>>> (or WebContainer Service), register it as your own HttpContext. Maybe >>>>>>> that >>>>>>> helps to what your are looking for? >>>>>>> >>>>>>> >>>>>>>> 2) No DefaultHttpContext (that can be extended as an annotated >>>>>>>> Service) >>>>>>>> >>>>>>>> - DefaultHttpContext is package private, so there is no >>>>>>>> "automatic" way to wire in a custom HttpContext (for the >>>>>>>> handleSecurity() >>>>>>>> method) without doing a lot of boilerplate coding to get the >>>>>>>> service, >>>>>>>> create the context, etc. Since the DefaultHttpContext handles the >>>>>>>> getResource() correctly in this scenario, it would be nice to be >>>>>>>> able to >>>>>>>> extend this class, and get it wired in via annotations. >>>>>>>> - I think what I was expecting was to have something similar to >>>>>>>> JspMapping or ResourceMapping that allowed me to specify path and >>>>>>>> contextID >>>>>>>> as annotations, and have the default getResources() handler, while >>>>>>>> being >>>>>>>> able to override the getSecurity() >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> Sounds like a new feature, this in itself it worthy a new Issue, oh >>>>>>> and we do love contributions ;) >>>>>>> >>>>>>> >>>>>>>> 3) Required use of "ExtenderConstants.PROPERTY_HTTP_CONTEXT_ID" >>>>>>>> instead of "HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_SELECT" in >>>>>>>> Servlets >>>>>>>> >>>>>>>> - Could not get the context selector to work - only the >>>>>>>> Extender property correctly maps the servlet to the context, as >>>>>>>> created by >>>>>>>> HttpContextMapping >>>>>>>> >>>>>>>> >>>>>>> See above, about us trying to form the existing Whiteboard extender >>>>>>> into the specified one by the OSGi Spec, so this could be a bug :) >>>>>>> >>>>>>> >>>>>>>> 4) JspMapping and ResourceMapping cannot use annotations to >>>>>>>> initialize >>>>>>>> >>>>>>>> - Tried using the ExtenderConstants.PROPERTY_HTTP_CONTEXT_ID >>>>>>>> annotation property - won't work - had expected to use Whiteboard, >>>>>>>> or >>>>>>>> Whiteboard-like annotations >>>>>>>> - Initializing in the constructor does work >>>>>>>> >>>>>>>> Sounds like another feature request. >>>>>>> >>>>>>> >>>>>>> >>>>>>>> Hope all this makes sense - not sure how to translate this into a >>>>>>>> JIRA bug or feature request. >>>>>>>> >>>>>>> >>>>>>> Makes a lot of sense now, you could open different issues / feature >>>>>>> requests for those. Oh and we do love contributions, if I didn't tell >>>>>>> you >>>>>>> that before :) >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> In the end, I have a workaround, and a sample you might be able to >>>>>>>> use to make the scenario more clear, so that it might help others. >>>>>>>> >>>>>>> >>>>>>> yeah, thanks will form a sample out of it, so we can actually use it >>>>>>> as a reference for the integration tests for those issues/bugs/feature >>>>>>> request you'll create ;) >>>>>>> >>>>>>>> >>>>>>>> On Saturday, June 17, 2017 at 3:42:51 PM UTC-4, Achim Nierbeck >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> thanks, sounds like a good idea. >>>>>>>>> Yep, that's a standard scenario, so it could be a bug you found, >>>>>>>>> especially since the non OSGi spec whiteboard properties seem to >>>>>>>>> work. >>>>>>>>> >>>>>>>>> regards, Achim >>>>>>>>> >>>>>>>>> >>>>>>>>> 2017-06-17 17:17 GMT+02:00 Eben Stewart <[email protected]>: >>>>>>>>> >>>>>>>>>> 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]>: >>>>>>>>>>> >>>>>>>>>>>> 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] >>>>>>>>>>>> >>>>>>>>>>>> --- >>>>>>>>>>>> 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<br >>>>>>>>>>> >>>>>>>>>> -- >>>>> -- >>>>> ------------------ >>>>> 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.
