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