You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "Frank Meilinger (JIRA)" <ji...@apache.org> on 2008/08/15 09:53:44 UTC
[jira] Created: (GERONIMO-4250) Wrong path to access JAR files in
EAR from WAR modules with getResourceAsStream
Wrong path to access JAR files in EAR from WAR modules with getResourceAsStream
-------------------------------------------------------------------------------
Key: GERONIMO-4250
URL: https://issues.apache.org/jira/browse/GERONIMO-4250
Project: Geronimo
Issue Type: Bug
Security Level: public (Regular issues)
Affects Versions: 2.1.2
Environment: Geronimo 2.1.2 on Windows XP
Reporter: Frank Meilinger
Hi,
I've tryed to build an EAR with the default lib/ bundle directory without using the manifest Class-Path entry in all WAR's which references the jar files in the lib/ directory. This EAR should be standard JEE5 compliant and should be deployable without any change in Geronimo 2.1.2 and GlassFish (latest Version).
Now I found a difference in how to access the jar files located in the EARs lib/ directory from within an WAR module.
In Geronimo I have to use:
getClass().getClassLoader().getResourceAsStream("lib/sample.jar")
to get the jar file content.
In GlassFish I have to use:
getClass().getClassLoader().getResourceAsStream("sample.jar")
notice - without the lib/ prefix.
As far as I understand the JEE5 specification (section 8.2.1 Bundled Libraries), all JAR-Files in the EARs lib/ directory should be available in all (also WAR) Modules classloaders. So the lib/ prefix should not be specified.
See discussion:
http://www.nabble.com/EAR-bundle-dir-classpath-issue-tt18982334s134.html
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (GERONIMO-4250) Wrong path to access JAR files in
EAR from WAR modules with getResourceAsStream
Posted by "Ivan (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/GERONIMO-4250?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12669885#action_12669885 ]
Ivan commented on GERONIMO-4250:
--------------------------------
All the jars in the lib folder are visible for each modules in the ear, for they are loaded by ear classloader.
I list the urls for a typical ear classloader :
0 = [file:/D:/geronimo-all/20090121/g/repository/com/heilgeist/testcase/geronimo/jarfile/my-ear/1.0-SNAPSHOT/my-ear-1.0-SNAPSHOT.ear/lib/my-entities1-1.0-SNAPSHOT.jar]
1 = [file:/D:/geronimo-all/20090121/g/repository/com/heilgeist/testcase/geronimo/jarfile/my-ear/1.0-SNAPSHOT/my-ear-1.0-SNAPSHOT.ear/lib/my-pu-1.0-SNAPSHOT.jar]
2 = [file:/D:/geronimo-all/20090121/g/repository/com/heilgeist/testcase/geronimo/jarfile/my-ear/1.0-SNAPSHOT/my-ear-1.0-SNAPSHOT.ear/mtom-ejb-2.2-SNAPSHOT.jar]
3 = [file:/D:/geronimo-all/20090121/g/repository/com/heilgeist/testcase/geronimo/jarfile/my-ear/1.0-SNAPSHOT/my-ear-1.0-SNAPSHOT.ear/]
4 = [file:/D:/geronimo-all/20090121/g/repository/com/heilgeist/testcase/geronimo/jarfile/my-ear/1.0-SNAPSHOT/my-ear-1.0-SNAPSHOT.ear/872056915/]
The reason that we could not load the resource with "sample.jar" is that the URL
"file:/D:/geronimo-all/20090121/g/repository/com/heilgeist/testcase/geronimo/jarfile/my-ear/1.0-SNAPSHOT/my-ear-1.0-SNAPSHOT.ear/lib "
is not inculded in the ear.
IMO, the spec you refer "all JAR-Files in the EARs lib/ directory should be available in all (also WAR) Modules classloaders" means that we could load the class from those jars in the lib directory, not we could access those jar files without lib prefix. About the access path, it seems that spec does not specify it explicitly.
Thanks for any comment !
> Wrong path to access JAR files in EAR from WAR modules with getResourceAsStream
> -------------------------------------------------------------------------------
>
> Key: GERONIMO-4250
> URL: https://issues.apache.org/jira/browse/GERONIMO-4250
> Project: Geronimo
> Issue Type: Bug
> Security Level: public(Regular issues)
> Affects Versions: 2.1.2
> Environment: Geronimo 2.1.2 on Windows XP
> Reporter: Frank Meilinger
>
> Hi,
> I've tryed to build an EAR with the default lib/ bundle directory without using the manifest Class-Path entry in all WAR's which references the jar files in the lib/ directory. This EAR should be standard JEE5 compliant and should be deployable without any change in Geronimo 2.1.2 and GlassFish (latest Version).
> Now I found a difference in how to access the jar files located in the EARs lib/ directory from within an WAR module.
> In Geronimo I have to use:
> getClass().getClassLoader().getResourceAsStream("lib/sample.jar")
> to get the jar file content.
> In GlassFish I have to use:
> getClass().getClassLoader().getResourceAsStream("sample.jar")
> notice - without the lib/ prefix.
> As far as I understand the JEE5 specification (section 8.2.1 Bundled Libraries), all JAR-Files in the EARs lib/ directory should be available in all (also WAR) Modules classloaders. So the lib/ prefix should not be specified.
> See discussion:
> http://www.nabble.com/EAR-bundle-dir-classpath-issue-tt18982334s134.html
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.