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

Reply via email to