On Jan 4, 2008, at 2:40 AM, Hari Krishna Korrapati wrote:

Would like to know whether we should manually change the manifest classpath of struts until unless the issue is fixed or any other walk around is there...

The other solution I can think of is to put all the jars (struts and all its dependencies) into the geronimo repository in appropriate locations and use dependencies from your ear plan rather than including them in your ear.  

We only pay attention to the manifest classpath entries inside javeee artifacts, we ignore them for other repository entries.

thanks
david jencks




On Jan 3, 2008 11:50 PM, David Jencks < david_jencks@yahoo.com> wrote:
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.


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




--
Regards,
Hari