2011-05-13 44 views
0

我有一個Example.war文件,該文件沒有該war文件的src代碼,但我想將某些內容更改爲example.war文件。所以我創建了新的頁面(.java文件)並通過ant編譯了頁面。它成功構建。現在我想將新頁面(.class文件)追加到Example.war.I中,然後打開example.war文件在winZip的幫助下,將這些.class文件添加到war文件中。但是,在通過tomcat.please部署war文件後,它並沒有顯示任何更改,請告知我是否遵循了正確的過程r。如果不善意告訴我將.classfiles附加到war文件的確切方式。是否可以將.cl​​ass(java)文件分別添加到現有的.war文件中?

回答

0

您不能使用WinZip。那麼你可以,但是每當你改變.war中的一組.class文件時,你需要更新一個清單文件。

與其手動操作,簡單的方法是使用JDK附帶的jar命令。 解壓戰爭(使用任何工具,但jar會讓你這樣做),將你的.class文件放入lib目錄,然後用jar工具重新打包war文件。

This page顯示瞭如何從螞蟻內部創建一個戰爭。

基本上,

<target name="war" depends="compile"> 
    <war destfile="dist/AntExample.war" webxml="WebContent/WEB-INF/web.xml"> 
    <fileset dir="WebContent"/> 
    <lib dir="WebContent/WEB-INF/lib"/> 
    <classes dir="build/classes"/> 
    </war> 
</target> 
+0

@ Chesso ..很感謝你的reply.i只能使用jar xvf example.war文件來提取,但在cmd提示符下我只能看到提取的文件?沒有別的...好心告訴我。簡單地解釋我r給一個鏈接..如何使用jar工具製作戰爭文件。 – hari 2011-05-17 05:09:52

0

第一個問題的答案是「是的,你可以類文件添加到WAR文件」。當你說新的「頁面」,你的意思是新的servlet(我假設你這麼做,因爲你說它是一個Java類而不是JSP文件)?

如果你想編一個新的類文件到已有的戰爭,你會採取以下步驟:

  1. 請確保您正在使用ANT編譯它的Java版本是一樣的Java版本您的應用程序服務器正在使用(託管WAR文件的服務器)。
  2. 在ANT中編譯.class文件,就像你在做的一樣。
  3. 您可以使用任何zip編輯器(WinZip - 儘管我更喜歡WinRAR)打開war文件並將.class文件放入WEB-INF/classes文件夾中。

但是,在這一點上,你還沒有告訴web應用程序有關你的新類文件(如果它是一個servlet)。您需要做的最後一步是編輯WEB-INF中的web.xml文件,將您的servlet映射到路徑。見this article for an example

你可以看到關於整個過程的更多細節here

最後,您可能會必須清除您的應用程序服務器的緩存並重新啓動它。如果您使用Tomcat,最簡單的方法是刪除「work」目錄中的所有內容並重新啓動應用程序服務器。

+0

嗨,非常感謝您的答覆..它真的幫了我很多..我不能改變任何東西在web.xml ..bcoz我還沒有看到任何servlet映射,在web.xml(example.war)文件中的urlpattern。跟蹤,服務是example.war中的servlet,但是這個跟蹤的url模式不同,只有一個servlet-class。你應該向我解釋一下這些url模式到底做了什麼。我不知道如何鏈接我的.class (UserInfom.java)到這個web.xml。請採取任何方法或幫助我 – hari 2011-05-17 05:06:04

+0

..他們需要你的建議和幫助....事情是......我無法理解行......「如果.class文件是Jar文件的一部分,你可以將新版本的Jar文件直接在application_root/module_name/WEB-INF/lib中。「 在Example.war文件中,WEB-INF/lib只包含三個jar文件(mysql-connector-java-5.0.7.jar ,dmtpserv.jar,mail.jar)如何使用新版本替換現有的.jar文件,如果有任何關於它的幫助, – hari 2011-05-18 09:04:17

+0

如果您需要更換戰爭中的jar(而不是添加類文件),那麼重新編譯過程非常相似。您只需在正確的位置添加jar文件中的.class文件(您可以使用zip編輯器或ant),然後您可以直接替換war文件中的jar文件。 – hross 2011-05-18 11:37:45

相關問題