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

[jira] Closed: (GERONIMO-878) Web deployer ignores manifest class path entries

     [ http://issues.apache.org/jira/browse/GERONIMO-878?page=all ]
     
Jeff Genender closed GERONIMO-878:
----------------------------------

    Resolution: Invalid

This is not a bug...its covered in the J2EE 1.4 spec, page 122:

"Top level JAR files that are processed by a deployment tool should not contain Class-Path entries; such entries would, by definition, reference other files external to the deployment unit. A deployment tool is not required to process such external references."

> Web deployer ignores manifest class path entries
> ------------------------------------------------
>
>          Key: GERONIMO-878
>          URL: http://issues.apache.org/jira/browse/GERONIMO-878
>      Project: Geronimo
>         Type: Bug
>   Components: deployment, web
>     Versions: 1.0-M4
>     Reporter: Bernd Fondermann
>     Priority: Blocker
>      Fix For: 1.0-M5

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