You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "Bernd Fondermann (JIRA)" <de...@geronimo.apache.org> on 2005/08/14 21:17:54 UTC

[jira] Commented: (GERONIMO-878) Jasper TldLocationsCache initialization fails

    [ http://issues.apache.org/jira/browse/GERONIMO-878?page=comments#action_12318755 ] 

Bernd Fondermann commented on GERONIMO-878:
-------------------------------------------

After removing the Manifest, everything works fine.

Geronimo just thinks, that the Manifest-Class-Path references are not relative to WEB-INF/ (that's what I thought), but to the web app root.

Although Geronimo seems to be right, other containers apparently handle this differently, so for me this issue never popped up before.

Case resolved... Lesson learned.


> Jasper TldLocationsCache initialization fails
> ---------------------------------------------
>
>          Key: GERONIMO-878
>          URL: http://issues.apache.org/jira/browse/GERONIMO-878
>      Project: Geronimo
>         Type: Bug
>   Components: deployment
>     Versions: 1.0-M4
>     Reporter: Bernd Fondermann

>
> When requesting a JSP page of a geronimo-deployed WAR, I get the following exception:
> org.apache.jasper.JasperException: Unable to initialize TldLocationsCache: $GERONIMO_HOME/config-store/17/lib1.jar
> The webapp contains a META-INF/MANIFEST.MF file with a line like that:
>     Class-Path: lib1.jar lib/lib2.jar
> I debugged into Jasper2 and found the following:
> * The code throwing the exception is in TldLocationsCache.scanJars(), called from init()
> * This method is triggered at JSP compilation time, but only for pages containing <%@ taglib ... %> directives
> * At first, the JettyClassLoader is doing its stuff
> * Second, its parent, o.a.g.kernel.config.ConfigurationClassLoader takes  over
> * TldLocationsCache iterates the 2 libs from the Manifest file as returned by ConfigurationClassLoader.getURLs()
> * The URLs as returned by the CL are
>    $GERONIMO_HOME/config-store/17/lib1.jar
>    $GERONIMO_HOME/config-store/17/lib/lib2.jar
> * But, the files are in fact stored under
>    $GERONIMO_HOME/config-store/17/war/WEB-INF/lib1.jar
>    $GERONIMO_HOME/config-store/17/war/WEB-INF/lib/lib2.jar
> * This causes a FileNotFoundException which is wrapped into the JasperException
> * If the config-store is manipulated (while running the server) to contain these two files at the requested location, everything works fine from then on
> * Of course, the downside of this manipulation is, that deployment fails at next server startup

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira