You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by dharbige <dh...@aconite.net> on 2007/07/12 15:27:31 UTC

Missing JAR when depolying EAR

I'm trying to deploy an EAR into Geronimo (V2.0-M6), but get the following
error:

Deployment failed:
Manifest class path entries must be a valid jar file (JAVAEE 5 Section 8.2):
jarFile=C:\geronimo-jetty6-jee5-2.0-M6\repository\default\Application_ID\1184243324313\Application_ID-1184243324313.car\jcifs.jar,
path=jcifs.jar 

I realise this is telling me I am missing the jcifs.jar file, but my code
does not use this library.  I have also searched the manifest files of all
the 3rd party JARs I am using, and none of them reference this file either.

I cannot get Geronimo to give me any idea why it thinks this JAR is needed,
despite putting all the logging to its most verbose.

Can anybody help?

David H.
-- 
View this message in context: http://www.nabble.com/Missing-JAR-when-depolying-EAR-tf4068076s134.html#a11559955
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.


Re: Missing JAR when depolying EAR

Posted by dharbige <dh...@aconite.net>.

djencks wrote:
> 
> I think you have this situation, based on the stack trace:
> 
> war with manfest classpath containing foo.jar
> foo.jar has jcifs.jar in its manifest classpath.
> 

I thought of this, which is why I manually checked the manifest files of all
the JARs and WARs in the EAR.  None of them (seem to) refer to jcifs.jar,
nor to any other JARs that *could* refer to jcifs.jar.


djencks wrote:
> 
> There are a couple of things we could change here, I'd be interested  
> in some opinions...
> 
> -- if we run into this error print more information about how we got  
> there, such as all the jars examined for manifest classpath so far:  
> "foo.jar" will be on the list fairly near the end.
> 

This would be very useful.  It's a bit annoying for G to complain about a
missing JAR, but give no information as to why it thinks the JAR is
required.


djencks wrote:
> 
> -- allow people to have bad manifest classpaths, and just warn loudly  
> about them rather than refusing to deploy.
> 

Or make it a configurable option - Strict or Relaxed manifest checking.


djencks wrote:
> 
> I'm a little worried about (2) because its so easy to miss warnings  
> no matter how large the type size they are presented in :-).  On the  
> other hand if you include 3rd party jars in your ear they may have  
> bizarre and incomprehensibly wrong manifest classpaths that you don't  
> want to fix :-)
> 

This change definitely gets a vote from me.  I'd rather have the option to
take a risk myself, rather than being rejected out of hand.  If G warns me
(it thinks) something is missing, and I subsequently get ClassNotFound
exceptions, that's my problem.


-- 
View this message in context: http://www.nabble.com/Missing-JAR-when-depolying-EAR-tf4068076s134.html#a11561730
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.


Re: Missing JAR when depolying EAR

Posted by David Jencks <da...@yahoo.com>.
I think you have this situation, based on the stack trace:

war with manfest classpath containing foo.jar
foo.jar has jcifs.jar in its manifest classpath.

There are a couple of things we could change here, I'd be interested  
in some opinions...

-- if we run into this error print more information about how we got  
there, such as all the jars examined for manifest classpath so far:  
"foo.jar" will be on the list fairly near the end.
-- allow people to have bad manifest classpaths, and just warn loudly  
about them rather than refusing to deploy.

I'm a little worried about (2) because its so easy to miss warnings  
no matter how large the type size they are presented in :-).  On the  
other hand if you include 3rd party jars in your ear they may have  
bizarre and incomprehensibly wrong manifest classpaths that you don't  
want to fix :-)

thanks
david jencks

On Jul 12, 2007, at 10:01 AM, dharbige wrote:

>
>
> donh wrote:
>>
>> David,
>> A couple of things come to mind, maybe you using a JAAS module that
>> requires it, are you using a NTLM security realm.
>>
>> Not really  sure just reaching. Do you have more stack  
>> information? Is it
>> possible that the deployer is adding these entries to the manifest?
>>
>>
>
> Donh,
>
> I'm not intentionally using a JAAS module or an NTLM security  
> realm, but
> I've only just started playing with Geronimo so I can't say for sure.
> It's installed on a Windows XP laptop that is part of a domain, but  
> there is
> no security stuff built into the EAR I am trying to deploy.
>
> The whole stack trace is below.  The deployer (by which I guess you  
> mean the
> Geronimo deployer) could be adding things to the manifest, but if  
> it were
> doing this why would it then complain when the JAR isn't present?   
> I've
> tried modifying the logger settings for the deployer, but no file is
> produced - I'm guessing the deployment fails on a "pre-deployment  
> check",
> and doesn't get as far as using the Deployer.
>
> 13:29:03,911 DEBUG [Deployer] Deployment failed: plan=null,
> module=C:\geronimo-jetty6-jee5-2.0-M6\var\temp\***********.ear
> org.apache.geronimo.common.DeploymentException: Manifest class path  
> entries
> must be a valid jar file (JAVAEE 5 Section 8.2):
> jarFile=C:\geronimo-jetty6-jee5-2.0-M6\repository\default 
> \Application_ID\1184243324313\Application_ID-1184243324313.car 
> \jcifs.jar,
> path=jcifs.jar
> 	at
> org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestCl 
> assPath(DeploymentContext.java:313)
> 	at
> org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestCl 
> assPath(DeploymentContext.java:316)
> 	at
> org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicIni 
> tContext(AbstractWebModuleBuilder.java:328)
> 	at
> org.apache.geronimo.jetty6.deployment.JettyModuleBuilder.initContext 
> (JettyModuleBuilder.java:324)
> 	at
> org.apache.geronimo.jetty6.deployment.JettyModuleBuilder$ 
> $FastClassByCGLIB$$1a00be84.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:127)
> 	at
> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke 
> (GBeanInstance.java:828)
> 	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$ 
> $4bcb740c.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:127)
> 	at
> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke 
> (GBeanInstance.java:828)
> 	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$ 
> $4bcb740c.initContext(<generated>)
> 	at
> org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguratio 
> n(EARConfigBuilder.java:564)
> 	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:127)
> 	at
> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke 
> (GBeanInstance.java:828)
> 	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.deployment.ConfigurationBuilder$$EnhancerByCGLIB 
> $$4cf150ff.buildConfiguration(<generated>)
> 	at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:302)
> 	at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:124)
> 	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:127)
> 	at
> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke 
> (GBeanInstance.java:863)
> 	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:619)
> Caused by: java.io.FileNotFoundException:
> C:\geronimo-jetty6-jee5-2.0-M6\repository\default\Application_ID 
> \1184243324313\Application_ID-1184243324313.car\jcifs.jar
> (The system cannot find the file specified)
> 	at java.util.zip.ZipFile.open(Native Method)
> 	at java.util.zip.ZipFile.<init>(ZipFile.java:114)
> 	at java.util.jar.JarFile.<init>(JarFile.java:133)
> 	at java.util.jar.JarFile.<init>(JarFile.java:97)
> 	at
> org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestCl 
> assPath(DeploymentContext.java:311)
> 	... 43 more
>
> -- 
> View this message in context: http://www.nabble.com/Missing-JAR- 
> when-depolying-EAR-tf4068076s134.html#a11560622
> Sent from the Apache Geronimo - Users mailing list archive at  
> Nabble.com.
>


Re: Missing JAR when depolying EAR

Posted by dharbige <dh...@aconite.net>.

donh wrote:
> 
> David,
> A couple of things come to mind, maybe you using a JAAS module that
> requires it, are you using a NTLM security realm. 
> 
> Not really  sure just reaching. Do you have more stack information? Is it
> possible that the deployer is adding these entries to the manifest?
> 
> 

Donh,

I'm not intentionally using a JAAS module or an NTLM security realm, but
I've only just started playing with Geronimo so I can't say for sure.
It's installed on a Windows XP laptop that is part of a domain, but there is
no security stuff built into the EAR I am trying to deploy.

The whole stack trace is below.  The deployer (by which I guess you mean the
Geronimo deployer) could be adding things to the manifest, but if it were
doing this why would it then complain when the JAR isn't present?  I've
tried modifying the logger settings for the deployer, but no file is
produced - I'm guessing the deployment fails on a "pre-deployment check",
and doesn't get as far as using the Deployer.

13:29:03,911 DEBUG [Deployer] Deployment failed: plan=null,
module=C:\geronimo-jetty6-jee5-2.0-M6\var\temp\***********.ear
org.apache.geronimo.common.DeploymentException: Manifest class path entries
must be a valid jar file (JAVAEE 5 Section 8.2):
jarFile=C:\geronimo-jetty6-jee5-2.0-M6\repository\default\Application_ID\1184243324313\Application_ID-1184243324313.car\jcifs.jar,
path=jcifs.jar
	at
org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestClassPath(DeploymentContext.java:313)
	at
org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestClassPath(DeploymentContext.java:316)
	at
org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(AbstractWebModuleBuilder.java:328)
	at
org.apache.geronimo.jetty6.deployment.JettyModuleBuilder.initContext(JettyModuleBuilder.java:324)
	at
org.apache.geronimo.jetty6.deployment.JettyModuleBuilder$$FastClassByCGLIB$$1a00be84.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:127)
	at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:828)
	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$$4bcb740c.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:127)
	at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:828)
	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$$4bcb740c.initContext(<generated>)
	at
org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:564)
	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:127)
	at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:828)
	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.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$4cf150ff.buildConfiguration(<generated>)
	at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:302)
	at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:124)
	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:127)
	at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:863)
	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:619)
Caused by: java.io.FileNotFoundException:
C:\geronimo-jetty6-jee5-2.0-M6\repository\default\Application_ID\1184243324313\Application_ID-1184243324313.car\jcifs.jar
(The system cannot find the file specified)
	at java.util.zip.ZipFile.open(Native Method)
	at java.util.zip.ZipFile.<init>(ZipFile.java:114)
	at java.util.jar.JarFile.<init>(JarFile.java:133)
	at java.util.jar.JarFile.<init>(JarFile.java:97)
	at
org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestClassPath(DeploymentContext.java:311)
	... 43 more

-- 
View this message in context: http://www.nabble.com/Missing-JAR-when-depolying-EAR-tf4068076s134.html#a11560622
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.


Re: Missing JAR when depolying EAR

Posted by donH <ju...@gmail.com>.

dharbige wrote:
> 
> I'm trying to deploy an EAR into Geronimo (V2.0-M6), but get the following
> error:
> 
> Deployment failed:
> Manifest class path entries must be a valid jar file (JAVAEE 5 Section
> 8.2):
> jarFile=C:\geronimo-jetty6-jee5-2.0-M6\repository\default\Application_ID\1184243324313\Application_ID-1184243324313.car\jcifs.jar,
> path=jcifs.jar 
> 
> I realise this is telling me I am missing the jcifs.jar file, but my code
> does not use this library.  I have also searched the manifest files of all
> the 3rd party JARs I am using, and none of them reference this file
> either.
> 
> I cannot get Geronimo to give me any idea why it thinks this JAR is
> needed, despite putting all the logging to its most verbose.
> 
> Can anybody help?
> 
> David H.
> 



donh wrote:
> 
> David,
> A couple of things come to mind, maybe you using a JAAS module that
> requires it, are you using a NTLM security realm. 
> 
> Not really  sure just reaching. Do you have more stack information? Is it
> possible that the deployer is adding these entries to the manifest?
> 
> 
-- 
View this message in context: http://www.nabble.com/Missing-JAR-when-depolying-EAR-tf4068076s134.html#a11560330
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.