I am deploying my application as an EAR file in JBoss 3.0.1 and get a "cannot be opened" error because the deployer is wrongly doubling a section of the path string - the internal EAR structure looks like this (simplified example):
Both the myejb.jar and myapp.war contain a mainifest file with a Class-Path: header value of lib/utils.jar. When I deploy this EAR file JBoss tries to deploy the war and ejb jar files but fails to find utils.jar - from the log it appears to be tacking on an extra '/lib' during the search for utils.jar. The error looks something like this:
13:47:45,644 WARN [MainDeployer] The manifest entry in file:/D:/WebServers/jboss-3.0.1/server/default/tmp/deploy/server/default/deploy/my.ear/62.my.ear-contents/lib/mywar.jar references URL file:/D:/WebServers/jboss-3.0.1/server/default/tmp/deploy/server/default/deploy/my.ear/62.my.ear-contents/lib/lib/utils.jar which could not be opened, entry ignored
Take notice of the temporary directory "*-contents/lib/lib/utils.jar" reference, when looking at the temporary directory there is only one /lib directory (as expected). If I flatten out the internal EAR structure like this:
And change mainifest file Class-Path: header value to 'utils.jar' the EAR works fine? This appears to be a bug - both EAR file examples works on WebLogic and is a standard J2EE supported structure. Does anyone know if this is a known bug in 3.0.1, or if there is a fix for this in a patch or newer release of JBoss?
This is happening in v3.0.2 also - I get the same /lib/lib warnings at start up, however, in v3.0.2 the beans and webapps are still deploying?