2013-10-09 5 views
25

मेरे पास एक WAR फ़ाइल है। मैं इसे खोलना चाहता हूं, एक एक्सएमएल फ़ाइल संपादित कर सकता हूं, कुछ जार हटा सकता हूं और फिर इसे फिर से पैकेज कर सकता हूं।WAR फ़ाइल को अनपॅक और पुन: पैकेज कैसे करें

मैंने WARRAR का उपयोग WAR फ़ाइल खोलने के लिए किया था और मैंने कुछ जार हटा दिए और WinRar में 'संग्रह में जोड़ें' किया और एक युद्ध बनाया।

जब मैंने jboss फ़ोल्डर में WAR को तैनात किया, तो मुझे अपवाद मिला।

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" 

मैं युद्ध को दोबारा कैसे दोहरा सकता हूं?

+0

क्या आपने WinRAR के साथ ज़िप प्रारूप बनाने की देखभाल की है, क्योंकि एक युद्ध फाइल ज़िप फ़ाइल विशेष संरचना है। – khmarbaise

उत्तर

46

आप यहाँ उल्लेख किया जावा आदेशों का उपयोग करते कमांड लाइन से अपने युद्ध अद्यतन कर सकते हैं:

jar -uvf test.war yourclassesdir 

अन्य उपयोगी कमांड:

कमान अनज़िप करने के लिए/युद्ध फ़ाइल विस्फोट

jar -xvf test.war 

युद्ध फ़ाइल बनाने के लिए कमांड

jar -cvf test.war yourclassesdir 
+0

इसके लिए क्या है? निकालना या मरम्मत करना? – vinoth

+0

@VinothKumar uvf विकल्प आपकी युद्ध फ़ाइल को अपडेट करना है, सीवीएफ विकल्प बनाना है, xvf को अनजिप या विस्फोट करना है। –

+2

यह does not काम, यह does not एक ही फाइल संरचना –

1

मुझे यकीन है कि ऐसा करने के लिए एएनटी टैग हैं लेकिन इस 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 को repackage निकाल सकते। लेकिन एक बड़े .war संग्रह में एक फ़ाइल को बदलना यह संभवतः सर्वोत्तम फ़ाइल निकालने और फिर मूल संग्रह को अपडेट कर सकता है।

0

शायद, आपने युद्ध की संरचना में संशोधन किया है या इसे एक अलग सर्वर संस्करण पर तैनात किया है। चेकआउट इन कड़ियों Error deploying war into JBoss AS 7 (domain mode): "Failed to process phase STRUCTURE of deployment" और https://community.jboss.org/thread/199387?start=0&tstart=0&_sscc=t

0

गैर प्रोग्राम के रूप में, तो आप सिर्फ संग्रह को जोड़ने/हटाने या निकालने/संरचना बदलने के बिना फ़ाइलों को प्रतिस्थापित करने के लिए 7zip UI का उपयोग खोल सकते हैं। मैं इसे अभी :)

1

ऊपर जवाब, इस बिलाव के लिए काम करता है से अनुकूल जब तक अन्य बातों का उपयोग कर एक समस्या थी पता नहीं था, लेकिन साथ ही 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

उसमें कोई ज़रूरत नहीं है, टोमकैट स्वाभाविक रूप से युद्ध फ़ाइल को उसी नाम के फ़ोल्डर में निकाला जाता है। आप बस उस फ़ोल्डर के अंदर वांछित फ़ाइल को संशोधित करते हैं (.xml कॉन्फ़िगरेशन फ़ाइलों सहित), बस इतना ही। तकनीकी रूप से कोई संशोधन

0

लागू करने के बाद बिल्ला को पुनः आरंभ करने की जरूरत है/tmp को अपने युद्ध फ़ाइल की प्रतिलिपि अब सामग्री निकालें:

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 अपनी फ़ाइल अद्यतन में है।

संबंधित मुद्दे