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.getCompleteManifestClassPath(DeploymentContext.java:367)
    at org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestClassPath (DeploymentContext.java:371)
    at org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestClassPath(DeploymentContext.java:286)
    at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext (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.buildConfiguration(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.doDeploy (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.getCompleteManifestClassPath(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