it-swarm.com.de

So entpacken und verpacken Sie eine WAR-Datei

Ich habe eine WAR-Datei. Ich möchte es öffnen, eine XML-Datei bearbeiten, einige Gläser entfernen und dann erneut verpacken.

Ich habe WINRAR zum Öffnen der WAR-Datei verwendet, einige Jars entfernt und ein "Add to Archive" in WinRar erstellt und ein WAR erstellt.

Als ich den WAR-Ordner im JBoss-Ordner implementierte, bekam ich eine Ausnahme.

   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"

Wie verpacke ich den WAR?

32

sie können Ihren Krieg von der Befehlszeile aus mit Hilfe von Java-Befehlen aktualisieren, wie hier erwähnt:

jar -uvf test.war yourclassesdir 

Andere nützliche Befehle:

Befehl zum Entpacken/Explodieren der Kriegsdatei

jar -xvf test.war

Befehl zum Erstellen der Kriegsdatei

jar -cvf test.war yourclassesdir 
63
Juned Ahsan

Das hat für mich funktioniert:

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 ..
3
Agam

Nach den obigen Antworten funktioniert dies für Tomcat, kann aber auch für JBoss oder jeden Container angepasst werden:

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
3
user2066936

Ich bin sicher, dass es ANT-Tags gibt, die es tun, aber ich habe diesen 7Zip-Hack in .bat-Skript verwendet. Ich benutze http://www.7-Zip.org/ Befehlszeilenprogramm. Ich verwende das alles, um die Jdbc-URL in der Datei j2ee context.xml zu ändern.

mkdir .\temp-install
c:\apps\commands\7za.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\commands\7za.exe u -y -tzip mywebapp.war ./temp-install/mywebapp/*
rmdir /Q /S .\temp-install

Sie können die gesamte WAR-Datei (die ZIP-Datei) extrahieren, Dateien löschen, Dateien ersetzen, Dateien hinzufügen, Dateien ändern und in eine WAR-Archivdatei packen. Wenn Sie jedoch eine Datei in einem großen WAR-Archiv ändern, empfiehlt es sich, eine bestimmte Datei zu extrahieren und dann das Originalarchiv zu aktualisieren.

1
Whome

kopieren Sie Ihre Kriegsdatei nach /tmpnow, und extrahieren Sie den Inhalt:

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

jetzt haben Sie Ihre Datei in /tmp/warfile.war aktualisiert.

1
Barani r

keine Notwendigkeit, Tomcat entpackt die WAR-Datei natürlich in einen Ordner mit demselben Namen. Sie ändern einfach die gewünschte Datei in diesem Ordner (einschließlich der XML-Konfigurationsdateien). Das ist alles. Sie müssen nicht neu starten Kater nach dem Anwenden der Änderungen

0
yasin

Nicht programmgesteuert können Sie das Archiv einfach mit der 7Zip-Benutzeroberfläche öffnen, um Dateien hinzuzufügen, zu entfernen oder zu extrahieren/zu ersetzen, ohne dass sich die Struktur ändert. Ich wusste nicht, dass es bisher ein Problem war, andere Dinge zu benutzen :)

0
Griknok

Möglicherweise haben Sie die Struktur des Krieges geändert oder auf einer anderen Serverversion bereitgestellt. Überprüfen Sie diese Links Fehler beim Bereitstellen von warmer Version in JBoss AS 7 (Domänenmodus): "Fehler beim Verarbeiten der Phase STRUCTURE der Bereitstellung" und https://community.jboss.org/thread/199387?start=0&tstart=0&_sscc = t

0
Barun