我有一個Example.war文件,該文件沒有該war文件的src代碼,但我想將某些內容更改爲example.war文件。所以我創建了新的頁面(.java文件)並通過ant編譯了頁面。它成功構建。現在我想將新頁面(.class文件)追加到Example.war.I中,然後打開example.war文件在winZip的幫助下,將這些.class文件添加到war文件中。但是,在通過tomcat.please部署war文件後,它並沒有顯示任何更改,請告知我是否遵循了正確的過程r。如果不善意告訴我將.classfiles附加到war文件的確切方式。是否可以將.class(java)文件分別添加到現有的.war文件中?
回答
您不能使用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>
第一個問題的答案是「是的,你可以類文件添加到WAR文件」。當你說新的「頁面」,你的意思是新的servlet(我假設你這麼做,因爲你說它是一個Java類而不是JSP文件)?
如果你想編一個新的類文件到已有的戰爭,你會採取以下步驟:
- 請確保您正在使用ANT編譯它的Java版本是一樣的Java版本您的應用程序服務器正在使用(託管WAR文件的服務器)。
- 在ANT中編譯.class文件,就像你在做的一樣。
- 您可以使用任何zip編輯器(WinZip - 儘管我更喜歡WinRAR)打開war文件並將.class文件放入WEB-INF/classes文件夾中。
但是,在這一點上,你還沒有告訴web應用程序有關你的新類文件(如果它是一個servlet)。您需要做的最後一步是編輯WEB-INF中的web.xml文件,將您的servlet映射到路徑。見this article for an example。
你可以看到關於整個過程的更多細節here。
最後,您可能會必須清除您的應用程序服務器的緩存並重新啓動它。如果您使用Tomcat,最簡單的方法是刪除「work」目錄中的所有內容並重新啓動應用程序服務器。
嗨,非常感謝您的答覆..它真的幫了我很多..我不能改變任何東西在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
..他們需要你的建議和幫助....事情是......我無法理解行......「如果.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
如果您需要更換戰爭中的jar(而不是添加類文件),那麼重新編譯過程非常相似。您只需在正確的位置添加jar文件中的.class文件(您可以使用zip編輯器或ant),然後您可以直接替換war文件中的jar文件。 – hross 2011-05-18 11:37:45
- 1. 將文件添加到現有的.war文件中
- 2. 是否可以將列追加到java中的文本文件?
- 3. 將文件添加到java中的現有.debian文件中
- 4. 是否可以使用Paperclip將現有文件添加到模型中?
- 5. 將Grails添加到現有的WAR文件?
- 6. Gradle:如何將輸出jar文件添加到現有war文件中
- 7. 是否可以將用戶添加到現有的共享文件夾?
- 8. 是否可以將多個屬性添加到XML文件中?
- 9. 是否可以附加到現有文件的第一行?
- 10. 是否可以將本地依賴添加到.podspec文件?
- 11. 將文件添加到現有的Zip歸檔文件中
- 12. 將java文件添加到jsp文件
- 13. 將現有的java WAR文件上傳到AWS Elastic Beanstalk
- 14. 是否可以將「文本」添加到swig中的現有類型圖?
- 15. 將自定義文件添加到war文件
- 16. 將文件添加到zip文件中的文件夾java
- 17. 是否有可能從war文件中拆分lib文件,就像在可執行jar文件中一樣
- 18. 是否可以將控件添加到Outlook中的現有閱讀窗格?
- 19. 將標題添加到現有文件
- 20. 是否可以將Java Editing區域添加到Eclipse RCP部件?
- 21. 我可以將清單文件添加到別人的exe文件嗎?
- 22. 是否可以在Android中將HTML文件加載到TextView中?
- 23. 是否可以使用java爲音頻文件添加水印?
- 24. 是否可以將jframe表單添加到現有類中?
- 25. 是否可以將.exe應用程序打包到war文件中?
- 26. 是否可以將jar文件添加到build.xml中的ant類路徑中?
- 27. 如何將文件添加到SVN的現有文件夾?
- 28. 將.pfx文件添加到現有的.pkcs8文件
- 29. 將文件添加到現有的zip文件
- 30. 是否可以將xslt文件拆分爲多個文件?
@ Chesso ..很感謝你的reply.i只能使用jar xvf example.war文件來提取,但在cmd提示符下我只能看到提取的文件?沒有別的...好心告訴我。簡單地解釋我r給一個鏈接..如何使用jar工具製作戰爭文件。 – hari 2011-05-17 05:09:52