Comment déballer et réemballer un fichier de guerre

j'ai un dossier de guerre. J'aimerais l'ouvrir, éditer un fichier XML, enlever des pots et ensuite le re-empaqueter.

J'ai utilisé WINRAR pour ouvrir le fichier WAR et j'ai enlevé quelques pots et j'ai fait un 'Add to Archive' dans WinRar et j'ai créé une guerre.

quand j'ai déployé la guerre dans le dossier jboss, j'ai eu une exception.

   16:05:14,316 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) 
   MSC00001: Failed to start service jboss.deployment.unit."myapplication.war".
   STRUCTURE: org.jboss.msc.service.StartException in 
   service   jboss.deployment.unit."myapplication.war".STRUCTURE: 
   Failed to process phase STRUCTURE of deployment "myapplication.war"

comment reconditionner la guerre ?

29
demandé sur Vinoth Kumar C M 2013-10-09 14:49:30

8 réponses

vous pouvez mettre à jour votre guerre depuis la ligne de commande en utilisant les commandes java comme indiqué ici:

jar -uvf test.war yourclassesdir 

autres commandes utiles:

commande pour décompresser / exploser le fichier de guerre

jar -xvf test.war

commande pour créer le fichier de guerre

jar -cvf test.war yourclassesdir 
55
répondu Juned Ahsan 2013-10-09 11:09:22

adapté des réponses ci-dessus, cela fonctionne pour Tomcat, mais peut être adapté pour JBoss aussi bien que pour n'importe quel conteneur:

sudo -u tomcat /opt/tomcat/bin/shutdown.sh
cd /opt/tomcat/webapps
sudo mkdir tmp; cd tmp
sudo jar -xvf ../myapp.war
#make edits...
sudo vi WEB-INF/classes/templates/fragments/header.html
sudo vi WEB-INF/classes/application.properties
#end of making edits
sudo jar -cvf myapp0.0.1.war *
sudo cp myapp0.0.1.war ..
cd ..
sudo chown tomcat:tomcat myapp0.0.1.war
sudo rm -rf tmp
sudo -u tomcat /opt/tomcat/bin/startup.sh
2
répondu 2016-04-21 02:42:16

cela a fonctionné pour moi:

mv xyz.war ./tmp
cd tmp
jar -xvf xyz.war
rm -rf WEB-INF/lib/zookeeper-3.4.10.jar
rm -rf xyz.war
jar -cvf xyz.war *
mv xyz.war ../
cd ..
2
répondu Agam 2018-05-11 15:00:31

je suis sûr qu'il y a des balises ANT pour le faire mais j'ai utilisé ce hack 7zip .chauve-souris de script. J'utilise http://www.7-zip.org/ outil de ligne de commande. Toutes les fois où je l'utilise pour changer l'url JDBC dans le contexte j2ee.fichier xml.

mkdir .\temp-install
c:\apps\commandsza.exe x -y mywebapp.war META-INF/context.xml -otemp-install\mywebapp
..here I have small tool to replace text in xml file..
c:\apps\commandsza.exe u -y -tzip mywebapp.war ./temp-install/mywebapp/*
rmdir /Q /S .\temp-install

vous pourriez extraire entier .la guerre de fichiers (zip, après tout), supprimer des fichiers, remplacer des fichiers, ajouter des fichiers, modifier les fichiers et de les reconditionner .la guerre du fichier d'archive. Mais changer un fichier dans un grand .archives de guerre ce serait peut-être mieux extraire un fichier spécifique puis mettre à jour l'archive originale.

1
répondu Whome 2013-10-09 10:59:33

peut-être, vous avez modifié la structure de la guerre ou de le déployer sur une version de serveur différente. Commande ces liens erreur déployant la guerre dans JBoss AS 7 (mode domaine): "échec de traiter la STRUCTURE de phase de déploiement" et https://community.jboss.org/thread/199387?start=0&tstart=0&_sscc=t

0
répondu Barun 2017-05-23 12:18:02

Non programmatique, vous pouvez simplement ouvrir l'archive en utilisant l'interface utilisateur 7zip pour ajouter/supprimer ou extraire/remplacer des fichiers sans que la structure change. Je ne savais pas que c'était un problème d'utiliser d'autres choses jusqu'à maintenant:)

0
répondu Griknok 2014-03-26 23:03:10

pas besoin, tomcat naturellement extraire le fichier war dans un dossier du même nom. vous modifiez simplement le fichier désiré dans ce dossier (y compris .fichiers de configuration xml), c'est tout. techniquement pas besoin de redémarrer tomcat après l'application des modifications

0
répondu yasin 2017-03-02 11:27:50

copiez votre fichier war vers /tmp maintenant, extrayez le contenu:

cp warfile.war /tmp
cd /tmp
unzip warfile.war
cd WEB-INF
nano web.xml (or vim or any editor you want to use)
cd ..
zip -r -u warfile.war WEB-INF

maintenant vous avez dans /tmp / warfile.guerre votre fichier de mise à jour.

0
répondu Barani r 2017-05-15 07:19:37