[jboss-user] [JBoss Tools (users)] - Re: upgrade to WTP 2.0.2 breaks EAR deployment in JBoss Tool

rob.stryker@jboss.com do-not-reply at jboss.com
Wed Mar 12 19:58:49 EDT 2008


Ok... so here's what I've discovered so far.   Methodology is similar to yours. Open an eclipse with wtp-2.0.1 workspace and create a seam project (seam 2), make sure it deploys appropriately (it does), close down eclipse.

Open a new eclipse with wtp-2.0.2 but use the same workspace.

The very first thing I notice is a stacktrace in the output (starting from command-line).  Trace is as follows:

[rob at localhost eclipse]$ ./eclipse 
Listening for transport dt_socket at address: 4000

*** ERROR ***: Wed Mar 12 19:27:50 EDT 2008    org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException: IWAE0006E Archive is not a valid Application Client JAR File because the deployment descriptor can not be found (case sensitive): META-INF/application-client.xml
        at org.eclipse.jst.j2ee.internal.componentcore.EnterpriseBinaryComponentHelper$ArchiveCache.openArchive(EnterpriseBinaryComponentHelper.java:339)
        at org.eclipse.jst.j2ee.internal.componentcore.EnterpriseBinaryComponentHelper.openArchive(EnterpriseBinaryComponentHelper.java:149)
        at org.eclipse.jst.j2ee.internal.componentcore.EnterpriseBinaryComponentHelper.getUniqueArchive(EnterpriseBinaryComponentHelper.java:79)
        at org.eclipse.jst.j2ee.internal.componentcore.AppClientBinaryComponentH
elper.getPrimaryRootObject(AppClientBinaryComponentHelper.java:110)
        at org.eclipse.wst.common.componentcore.ArtifactEdit.getContentModelRoot
(ArtifactEdit.java:540)
        at org.eclipse.jst.jee.internal.deployables.JEEDeployableFactory.createB
inaryModules(JEEDeployableFactory.java:163)


Tracing through, this happens during startup for me because I made sure to have the JBossServers view up which probably helped force the initialization of the deployable factories.  blah blah ;)  Moving along.

I stopped the trace at createBinaryModules because this, I feel, is the important part. This is where the model for this project is started.   Looking at the code for this method, we see the following.  (context: It's parsing through the list of objects in the application.xml's  module tags).  Here are some snippets.




  | 	if (moduleComponent.isBinary()) {
  | 		// create an ear edit, app only if the module is binary prevents exceptions when there
  | 		// is no deployment descriptor in many cases see bug 174711
  | 		if(earEdit == null){
  | 			earEdit = EARArtifactEdit.getEARArtifactEditForRead(component.getProject());
  | 			app = earEdit.getApplication();
  | 		}
  | 		// if we are missing the application.xml, cannot check for module URI so assume an archive
  | 		if (app == null) {
  | 			continue;
  | 		}
  | 

So it's obvious they're trying to make sure if it's binary and has no application.xml, to just give up on it and accept that it's a generic archive. 

The problem is despite their best efforts, this is not working. It is returning something. app is not null.  The code fails at the following place.


  | 	else if (j2eeModule.isJavaModule()) {
  | 		moduleEdit = ComponentUtilities.getArtifactEditForRead(moduleComponent,
  | 		 J2EEProjectUtilities.APPLICATION_CLIENT);
  | 		ApplicationClient appClient = (ApplicationClient) moduleEdit.getContentModelRoot();
  | 		moduleType = J2EEProjectUtilities.APPLICATION_CLIENT;
  | 		moduleVersion = appClient.getVersion();
  | 	}
  | 

So basically, the top snippet tries to screen out generic java modules, but somehow fails. When it gets to the second snippet, it's assuming it's an application client jar, not a generic archive.  

This is most definitely an upstream wtp bug and I will mark it as such and push it to tim and the server team.  I'll also continue looking into it and try to provide a patch to eclipse. 

- Rob

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4136153#4136153

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4136153



More information about the jboss-user mailing list