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]

--- 
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.

Reply via email to