2014-07-08 4 views
1

Je tente de compiler et de déployer un fichier EAR sur un serveur d'applications WebSphere 6.1 (WAS) - sans Rational Application Developer (RAD) ou Liberty. Je suis dans la phase initiale d'essayer de déplacer la compilation et de déployer sur un serveur de construction. Je n'ai aucun problème avec la compilation. Cependant, lorsque je tente de déployer l'EAR je reçois un AppDeploymentException:AppDeploymentException lors du déploiement de WebSphere EAR

The EAR file could be corrupt and/or incomplete. Make sure that the application is at a compatible Java 2 Platform, Enterprise Edition (J2EE) Level for WebSphere Application Server. 

Je lis quelque part (ne peut pas trouver le lien maintenant) qui consultait les fichiers doivent être compilés en utilisant IBM JDK. Donc j'ai installed that et recompilé avec mais j'ai eu le même problème.

La version majeure des fichiers de classe (de javap) est correcte mais je suis toujours mystifié de cette erreur car il semble que la seule différence entre "working" et "not" est le code d'octet lui-même. Y a-t-il un autre mojo inhérent qui nécessite que ces fichiers soient construits par RAD?

This question suggère que le schéma web.xml doit être 2.4 pour WebSphere 6.1 mais cela n'a eu aucun impact pour moi. En fait, si je prends un EAR fonctionnel (créé via RAD) et à partir de cette copie seulement les fichiers de classe dans l'EAR qui a été créé par le processus brut JDK/gradle, cela fonctionnera.

Désolé, je ne connais pas WebSphere pour inclure plus d'informations sur l'erreur. J'ai vérifié le fichier activity.log pour ce profil et n'a même pas pu trouver l'erreur signalée dans la sortie de la console. Le journal dmgr dit seulement:

[7/8/14 12:46:56:886 PDT] 0000073b ApplicationDe I ApplicationDeploymentController perform ApplicationDeploymentControll 
er: performing appcontexts refresh 
[7/8/14 12:47:00:416 PDT] 0000073b WebApp  A SRVE0180I: [isclite#isclite.war] [/ibm/console] [Servlet.LOG]: action: ApplicationDeploymentDetailForm was null.Creating new form bean and storing in session 
[7/8/14 12:48:25:273 PDT] 0000062d wtp   W org.eclipse.jst.j2ee.commonarchivecore.internal.impl.ModuleRefImpl in 
itModuleFileFromEAR Ignoring FileNotFoundException [ mbepepWeb.war ] 
[7/8/14 12:48:25:279 PDT] 0000062d wtp   E org.eclipse.jst.j2ee.application.internal.impl.WebModuleImpl incomp 
atible with org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleFile 

Je ne sais pas comment est pertinent. Le fichier war mentionné est à la racine du fichier EAR.

Espérons que quelqu'un a une suggestion!

Répondre

1

WebSphere v6.1 requiert l'application Java EE 1.4. Assurez-vous que votre application:

  • est compilé avec au plus Java 1.5 compatibilité
  • vous application.xml fichier dans le répertoire META-INF dans l'oreille, et son module web référencement correctement.
  • vous avez web.xml dans votre fichier de guerre dans le dossier WEB-INF

Vérifiez le schéma pour les deux descripteurs:

application.xml devrait être:

<application xmlns="http://java.sun.com/xml/ns/j2ee" id="Application_ID" version="1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"> 

web.xml devrait être:

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

Comment déployez-vous votre application?

+0

Merci, cela aide à clarifier les exigences mais ce n'était pas mon problème. J'utilisais 1.5 (version majeure 49) et j'avais remplacé toutes les autres parties de l'oreille et ça ne fonctionnait toujours pas. J'ai ajouté ce que je pense est la réponse. – AndyJ

0

Je disposais d'un fichier EAR fonctionnel exporté à partir de RAD et de mon fichier EAR non fonctionnel à partir du processus de construction de base. J'ai remplacé le répertoire WEB-INF/class par le code personnalisé et cela a fonctionné. J'ai continué à développer la sélection de code à partir du processus personnalisé, en remplaçant les morceaux correspondants dans le fichier RAD EAR jusqu'à ce que je trouve ce qui le cassait.

Semble le coupable était que mon fichier MANIFEST.MF dans la webapp n'a pas un attribut CLASSPATH tandis que le manifeste généré RAD avait un attribut CLASSPATH vide. Un fichier était de 50 octets, l'un d'eux était de 25. Quelle différence quelques octets font.

Questions connexes