]
Andre Dietisheim commented on JBIDE-8863:
-----------------------------------------
I debugged the current code (which may differ from the code that was used when the issue
was filed since we introduces AS7 deployments in the meantime).
AFAIK the problem resides in the fact that the outer EAR project is never
deployed/created. The current code does deploy on behalf of the project children and does
nothing if there're no children. Eclipse WTP does not treat the inner projects
(project1 and project2) as children (@see PublishUtil#getResources - it returns an empty
IModuleResource[] for the EAR_Project. It's using IModule#loadAdapter on to get a
ModuleDelegate for the EAR_Project which it then gets the child resources from).
I might fix it by providing a workaround for this particular case. I'm not sure though
if this is the proper solution, I would need in depth comments from Rob.
Error deploying EAR with a module having a sub-module in its
component descriptor.
----------------------------------------------------------------------------------
Key: JBIDE-8863
URL:
https://issues.jboss.org/browse/JBIDE-8863
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: JBossAS
Affects Versions: 3.2.0.Final
Environment: Tested with Eclipse Indigo Release 20110319-2305 with latest nightly
build trunk of JBoss Tools.
Deploying on a JBoss 4.2 server.
Reporter: Philippe Guinot
Assignee: Rob Stryker
Priority: Critical
Labels: component, deployment, descriptor, ear, eclipse, jar, module
Fix For: 3.2.1.CR1, 3.3.0.M2
Attachments: error-renaming-archive.png, recursive-projects.zip
h3.Context:
For some reasons I have to deploy an EAR webapp with (in its libs) a jar containing
itself another jar.
h3.Environment:
For this I have a first Java project with the following component descriptor:
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="project1">
<wb-resource deploy-path="/"
source-path="/src/main/java"/>
</wb-module>
</project-modules>
{code}
Then, the second Java project has the component descriptor:
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="project2">
<wb-resource deploy-path="/"
source-path="/src/main/java"/>
<dependent-module archiveName="project1.jar"
deploy-path="/lib" handle="module:/resource/project1/project1">
<dependency-type>uses</dependency-type>
</dependent-module>
</wb-module>
</project-modules>
{code}
Then, in Eclipse when exporting the *project2* as a *Module Archive*, I obtain a .jar
file featuring both classes from *project2* and a *lib* folder with the project1 compiled
jar.
Now, in the ear project I have the following lines in the component descriptor:
{code:xml}
<dependent-module archiveName=" project1.jar"
deploy-path="/lib" handle="module:/resource/ project1/ project1">
<dependency-type>uses</dependency-type>
</dependent-module>
<dependent-module archiveName=" project2.jar"
deploy-path="/lib" handle="module:/resource/ project2/ project2">
<dependency-type>uses</dependency-type>
</dependent-module>
{code}
(The EAR needs the 2 jars as well)
h3.Problem:
Then, when deployed into my *JBoss 4.2 Runtime* server in Eclipse, I got the following
error:
{code}
Error renaming C:\DEV\jboss\server\default\tmp\jbosstoolsTemp\tmp7021855122707247750.jar
to C:\DEV\jboss\server\default\deploy\EAR_Project.ear\lib\project2.jar\lib\project1.jar
{code}
!error-renaming-archive.png!
After some research, I think an exception is thrown at
*org.jboss.ide.eclipse.as.core.server.xpl.PublishCopyUtil.LocalCopyCallback.moveTempFile(File,
File)* during the safe rename.
However, when I look to the error message I got the feeling that the publishing process
want to copy the tmp jar file into a folder called
"C:\DEV\jboss\server\default\deploy\EAR_Project.ear\lib\project2.jar\lib\" which
can not work because
"C:\DEV\jboss\server\default\deploy\EAR_Project.ear\lib\project2.jar" is a file.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: