2013-10-09 16 views
25

WARファイルがあります。私はそれを開き、XMLファイルを編集し、いくつかのjarファイルを削除してから、再度パッケージしたいと思います。WARファイルを展開して再パッケージ化する方法

私はWARファイルを開くためにWINRARを使用しましたが、いくつかのJARを削除し、WinRarで「Add to Archive」を実行してWARを作成しました。

WARをjbossフォルダにデプロイしたときに例外が発生しました。

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" 

WARを再パッケージするにはどうすればよいですか?

+0

WinRARを使用してzip形式を作成するように気をつけましたが、warファイルはZIPファイルの特別な構造です。 – khmarbaise

答えて

46

ここに述べたように、あなたは、javaコマンドを使用して、コマンドラインからあなたの戦争を更新することができます。

jar -uvf test.war yourclassesdir 

その他の便利なコマンド:

コマンドをwarファイルを爆発/

jar -xvf test.war 

を解凍しますwarファイルを作成するコマンド

jar -cvf test.war yourclassesdir 
+0

これは何ですか?抽出または再パッケージングしますか? – vinoth

+0

@VinothKumar uvfオプションはあなたのwarファイルを更新することです、cvfオプションは作成することです、xvfは解凍または爆発することです。 –

+2

それは動作しません、それは同じファイル構造を維持しません –

1

これにはANTタグがあると確信していますが、この7zipハックを.batスクリプトで使用しています。私はhttp://www.7-zip.org/コマンドラインツールを使用します。私はこれをj2ee context.xmlファイル内のjdbc urlを変更するために使用します。

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 

あなたは、全体の.warファイル(すべての後にそのジッパー)を抽出したファイルを削除して、ファイルを置き換え、ファイルを追加、ファイルを変更し、アーカイブファイルを再パッケージ化の.warすることができます。しかし、大規模な.warアーカイブ内の1つのファイルを変更すると、特定のファイルを抽出して元のアーカイブを更新するのが最善です。

0

プログラムではなく、7zip UIを使用して構造を変更せずにファイルを追加/削除または置換/置換するだけでアーカイブを開くことができます。私は今:)

1

上記の答え、これはTomcatのために働くから適応されるまで、他のものを使用して問題知りませんでしたが、同様のJBossに適合させることができるか、いずれかのコンテナ:

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 
0

それを必要とせずに、Tomcatはwarファイルを自然に同じ名前のフォルダに展開します。 そのフォルダ内の目的のファイル(.xml構成ファイルを含む)を変更するだけです。

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 

は今、あなたは/tmp/warfile.warあなたのファイルに更新しています 修正

0

を適用した後、Tomcatを再起動する技術的に必要はありませんが、今内容を抽出/ tmpの にあなたのwarファイルをコピーします。

関連する問題