[
https://issues.apache.org/jira/browse/GERONIMO-2955?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Paul McMahan resolved GERONIMO-2955.
------------------------------------
Resolution: Fixed
Fix Version/s: 2.0-beta1
Jasper allows you to override its default JSP options although it's not very
straightforward to do so. I could not directly extend the default impl of the
Options interface because it is declared final. Also, most of the important
bits of TldLocationsCache are private so I made a copy of it and adjusted the
appropriate methods.
> MyFaces Tag Library Descriptors are not found by the Jasper Compiler
> --------------------------------------------------------------------
>
> Key: GERONIMO-2955
> URL: https://issues.apache.org/jira/browse/GERONIMO-2955
> Project: Geronimo
> Issue Type: Bug
> Security Level: public(Regular issues)
> Components: web
> Affects Versions: 2.0-M3
> Reporter: Paul McMahan
> Assigned To: Paul McMahan
> Priority: Critical
> Fix For: 2.0-beta1
>
>
> Jasper's technique for finding Tag Library Descriptors (TLDs) does not work
> well with Geronimo's MultiParentClassLoader. The Jasper compiler tries to
> find TLDs in jar files by getting the list of jars from the webapp's
> classloader and scanning them for META-INF/\*\*.tld. Then it repeats this
> process up the classloader hierarchy (at least what it *thinks* is the
> classloader hierarchy) by calling ClassLoader.getParent(). That works OK
> when then TLDs are in the webapp's WEB-INF/lib or in the JRE's system or
> application classloader. But this technique doesn't work in Geronimo because
> there are sometimes jars in the classloader hierarchy that are only
> accessible by using Geronimo's special MultiParentClassLoader.getParents()
> method.
> The Jasper code referred to above can be viewed in the scanJars() method of
> this class:
> http://svn.apache.org/repos/asf/tomcat/tc6.0.x/tags/TOMCAT_6_0_10/java/org/apache/jasper/compiler/TldLocationsCache.java
> Because of this limitation the Jasper compiler does not find the TLDs in
> myfaces-impl-2.0-SNAPSHOT.jar because it doesn't find the classloader
> containing that jar when it looks up the direct lineage of classloaders.
> This causes the following error message when a JSP refers to the JSF taglibs:
> {quote}
> javax.servlet.ServletException: The absolute uri:
> http://java.sun.com/jsf/html cannot be resolved in either web.xml or the jar
> files deployed with this application
> {quote}
> The MyFaces TLDs need to be made accessible to Jasper so that webapps can
> reference the JSF taglibs in their JSPs without copying the TLDs into their
> WARs.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.