There were a lot of bugs in the geronimo 1.1.1 manifest classpath
handling and I fixed them.... IIRC I was considering making strict
checking optional but couldn't think of a good way to do it.
See https://issues.apache.org/jira/browse/GERONIMO-3316
thanks
david jencks
On Jan 3, 2008, at 4:38 AM, Hari Krishna Korrapati wrote:
Hi,
I am working on a ear application on Geronimo-2.0.2.
The web module of ear uses struts-1.1.jar. MANIFEST file of
struts-1.1 has the following class path entry
Class-Path: commons-beanutils.jar commons-collections.jar commons-dig
ester.jar commons-logging.jar commons-validator.jar jakarta-oro.jar s
truts-legacy.jar
But my ear has something like common-beanutils-1.6.1.jar , common-
collections-2.0.jar, etc..
While deploying the ear, struts is looking for commons-
beanutils.jar, where as EAR has jar, but with version.
The exception which i am getting is:
Manifest class path entries must be a valid jar file (JAVAEE 5
Section 8.2): path=commons-beanutils.jar, resolved to
targetURI=commons-beanutils.jar
looking at: struts-1.1.jar current classpath: [WEB-INF/
classes/, ../commons-dbcp-1.0.jar, ../regexp-1.2.jar, ../j2ssh-
ant-0.2.2.jar , ../odmg-3.0.jar, ../j2ssh-core-0.2.2.jar, ../
commons-beanutils-1.6.1.jar, ../commons-pool-1.0.1.jar, ../commons-
codec-1.3.jar, ../oro-2.0.7.jar, ../commons-validator-1.1.4.jar, ../
Acme-1.0.jar, ../j2ee-1.4.jar, ../struts- 1.1.jar, ../commons-
beanutils.jar] ignoring modules: [dao-rc.jar, biz-rc.jar,
sampleweb-rc.war]
org.apache.geronimo.common.DeploymentException: Manifest class path
entries must be a valid jar file (JAVAEE 5 Section 8.2):
path=commons-beanutils.jar, resolved to targetURI=commons-
beanutils.jar
looking at: struts-1.1.jar current classpath: [WEB-INF/
classes/, ../commons-dbcp-1.0.jar, ../regexp-1.2.jar, ../j2ssh-
ant-0.2.2.jar, ../odmg- 3.0.jar, ../j2ssh-core-0.2.2.jar, ../
commons-beanutils-1.6.1.jar, ../commons-pool-1.0.1.jar, ../commons-
codec-1.3.jar, ../oro-2.0.7.jar, ../commons-validator-1.1.4.jar, ../
Acme-1.0.jar, ../j2ee-1.4.jar, ../struts-1.1.jar , ../commons-
beanutils.jar] ignoring modules: [dao-rc.jar, biz-rc.jar,
sampleweb-rc.war]
at
org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestCl
assPath(DeploymentContext.java:367)
at
org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestCl
assPath (DeploymentContext.java:371)
at
org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestCl
assPath(DeploymentContext.java:286)
at
org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicIni
tContext (AbstractWebModuleBuilder.java:332)
at
org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.initContext(
TomcatModuleBuilder.java:290)
at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder$
$FastClassByCGLIB$$6f85ec2c.invoke (<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperation.java:124)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.java:830)
at org.apache.geronimo.gbean.runtime.RawInvoker.invoke
(RawInvoker.java:57)
at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke
(RawOperationInvoker.java:35)
at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept
(ProxyMethodInterceptor.java:96)
at org.apache.geronimo.j2ee.deployment.ModuleBuilder$
$EnhancerByCGLIB$$72b50ef.initContext (<generated>)
at
org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder.initContext
(SwitchingModuleBuilder.java:159)
at org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder$
$FastClassByCGLIB$$d0c31844.invoke (<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperation.java:124)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.java:830)
at org.apache.geronimo.gbean.runtime.RawInvoker.invoke
(RawInvoker.java:57)
at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke
(RawOperationInvoker.java:35)
at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept
(ProxyMethodInterceptor.java:96)
at org.apache.geronimo.j2ee.deployment.ModuleBuilder$
$EnhancerByCGLIB$$72b50ef.initContext (<generated>)
at
org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguratio
n(EARConfigBuilder.java:576)
at org.apache.geronimo.j2ee.deployment.EARConfigBuilder$
$FastClassByCGLIB$$38e56ec6.invoke (<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperation.java:124)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.java:830)
at org.apache.geronimo.gbean.runtime.RawInvoker.invoke
(RawInvoker.java:57)
at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke
(RawOperationInvoker.java:35)
at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept
(ProxyMethodInterceptor.java:96)
at org.apache.geronimo.j2ee.deployment.CorbaGBeanNameSource$
$EnhancerByCGLIB$$3e58cb04.buildConfiguration (<generated>)
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:
304)
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:
126)
at org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$
$734a235d.invoke (<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
(FastMethodInvoker.java:38)
at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperation.java:124)
at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.java:865)
at org.apache.geronimo.kernel.basic.BasicKernel.invoke
(BasicKernel.java:239)
at
org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doDe
ploy (AbstractDeployCommand.java:116)
at
org.apache.geronimo.deployment.plugin.local.DistributeCommand.run
(DistributeCommand.java:61)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.io.IOException : Could not create JarFile for file:
E:\Geronimo 2.0.2\geronimo-tomcat6-jee5-2.0.2-bin\geronimo-tomcat6-
jee5-2.0.2\repository\sample-rc\sampleapp\rc\sampleapp-rc.car
\commons-beanutils.jar
at org.apache.geronimo.deployment.DeploymentContext
$DefaultJarFileFactory.newJarFile (DeploymentContext.java:271)
at
org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestCl
assPath(DeploymentContext.java:365)
... 44 more
Caused by: java.util.zip.ZipException: The system cannot find the
file specified
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:204)
at java.util.jar.JarFile.<init>(JarFile.java:132)
at java.util.jar.JarFile.<init>( JarFile.java:97)
at org.apache.geronimo.deployment.DeploymentContext
$DefaultJarFileFactory.newJarFile(DeploymentContext.java:269)
... 45 more
Then i changed class path entry in manifest file of struts to have
the versions which i use, like
Class-Path: commons-beanutils-1.6.1.jar commons-collections-2.1.jar c
ommons-digester-1.5.jar commons-logging-1.0.jar commons-validator-1.1
.4.jar oro-2.0.7.jar struts-legacy-1.1.jar
After changing manifest file, i am not getting any errors and EAR
got deployed successfully.
It worked fine with geronimo-1.1.1 without changing any thing, but
facing problem in geronimo 2.0.2 .
Please advice how to overcome this issue.
Thanks and Regards,
Hari