我正在嘗試爲Java EE 7使用eclipse kepler。我已經安裝了JBoss Tools併成功添加了JBoss Wildfly作爲服務器。但是我的更改不會自動部署。無論如何,應用程序可以像使用glassfish一樣自動部署?Eclipse Kepler和JBoss Wildfly熱部署
回答
使用Eclipse,點擊兩次您WildFly服務器上編輯以下屬性:
- 發佈:選擇「生成事件後自動發佈」。我希望將發佈間隔也更改爲1秒。
- 應用刷新行爲:勾選「自定義應用程序重裝......」複選框並編輯正則表達式模式
\.jar$|\.class$
就是這樣。祝你好運!
我假設你使用的是最新版本的Wildfly(寫入8.0 Beta 1)。
在standalone.xml配置文件中,查找< jsp-config/>。添加屬性development =「true」它應該熱部署。將得到的配置將看起來像這樣:
<jsp-config development="true"/>
嗨@Sean我這樣做了,但是當我更改了一個java源文件時,我沒有注意到這些更改。但是,如果我更改了一個xhtml,它就會被反映出來。 – zulq
在XPath中= // servlet的容器/ JSP-配置文件添加屬性(發展,檢查間隔,修改測試間隔,重新編譯-上失敗)配置/
<servlet-container name="default" default-buffer-cache="default" stack-trace-on-error="local-only">
<jsp-config development="true" check-interval="1" modification-test-interval="1" recompile-on-fail="true"/>
</servlet-container>
(它的工作原理WildFly-8.0.0.Final)
兩個@varantes和@Sean基本上是正確的,但這些答案都是不完整的。
不幸的是在Java服務器環境,只有這樣纔能有充分的,零停機熱部署是使用支付JRebel或免費spring-loaded工具。
但是對於小型項目,有一些方法可以通過部分熱部署加快工作速度。本質:
- 如果啓用選項自動發佈在資源變化 然後裏面
*.html
變化,*.xhtml
文件立即 反映,只要你刷新瀏覽器。 - 爲了使熱部署工作
*.jsp
文件了,那麼你就應該 內$ {wildfly家庭} /standalone/configuration/standalone.xml 化妝以下更改:
<jsp-config/>
替換:
<jsp-config development="true"/>
重新啓動服務器並享受網頁文件的熱部署。
但修改*.java
源文件時,則只能進行部分熱部署。
正如他的回答說@varantes,使應用刷新行爲設置爲\.jar$|\.class$
正則表達式是一種選擇,但有嚴重的缺點:整個模塊重新啓動,因此:
- 這需要一些時間(視模塊有多大)。
- 整個應用程序狀態丟失。
因此,我個人不鼓勵這種解決方案。
JVM支持(在調試模式下)方法體的代碼交換。因此,只要您只修改現有方法的實體,您就在家中(零停機時間,更改會立即反映出來)。但是你必須在服務器設置中禁用自動發佈,否則應用程序的狀態仍然會被重新發布所破壞。
但如果你是嚴重crafing Java代碼(添加類,註釋,構造函數)則可惜的是,我只能建議設置發佈到從不自動發佈(或關閉服務器),當你完成你的工作在java文件,然後手動重啓模塊(或開機服務器)。由你決定。
它適用於小型的Java項目,但對於更大的,JRebel的是無價的(或只是彈簧),因爲上述所有的方法是不夠的。
順便說一句:也因爲這樣的問題,像Rails
/Django
/Play! Framework
這樣的解決方案獲得如此巨大的人氣。
祝你好運,快速編碼!
即使使用Play!框架,如果項目增長到一個體面的大小,你會再次遇到同樣的問題。 –
@AntonArhipov我不明白爲什麼。你的意思是代碼熱替換問題?我不這麼認爲(雖然從未見過這麼大的Play!項目)。或者你的意思是長時間啓動? –
具體來說,熱代碼替換。我在JRebel團隊(爲了記錄),我們從未考慮過爲那些奇特的框架實現JRebel支持。但是現在用戶開始越來越多地詢問支持 - 應用程序變大,原生框架重新加載沒有跟上。 –
在調試模式下啓動服務器,它將跟蹤方法內的機會。其他更改它會要求重新啓動服務器。
- 1. JBoss ejb3.0即時熱部署
- 2. OSGi vs jboss熱部署
- 3. JBoss 6:停止熱部署
- 4. JBoss Wildfly 10耳部署指南需要
- 5. 熱部署EAR - (Netbeans 8.0.2/Wildfly 9.0.1/Maven 3.3.3)
- 6. 使用eclipse將helloworld部署到wildfly
- 7. WAS 8.0 eclipse插件和熱部署
- 8. JBoss AS 7禁用熱部署
- 9. 休眠jboss熱部署問題
- 10. jboss 5.0.1不支持熱部署?
- 11. 關閉JBoss熱部署服務?
- 12. PicketLink ClassNotFoundException org.picketlink.Identity部署到WildFly
- 13. 如何使用Jboss Tools Eclipse插件在Jboss中「熱」部署戰爭依賴?
- 14. Jboss Wildfly EJB3和Mybatis部署錯誤:NoSuchMethodError javax.persistence.Table.indexes()[Ljavax/persistence/Index;
- 15. jboss保持自動熱部署/取消部署
- 16. .EAR部署順序wildfly-8.0.0Final
- 17. JSF2和Maven - 熱部署?
- 18. JBoss部署
- 19. Jboss EAR部署
- 20. SAP Netweaver熱部署
- 21. Eclipse JBoss熱代碼替換
- 22. Eclipse RCP熱部署到出口版本
- 23. Maven + Tomcat熱部署
- 24. Wildfly部署問題
- 25. Eclipse mvn項目部署到jboss
- 26. Eclipse + JBoss - 未部署一些JAR文件
- 27. BouncyCastle將ClassNotFoundException部署到WildFly
- 28. JBOSS門戶部署
- 29. 在Wildfly 9上部署失敗
- 30. Mule熱部署
+1,但不幸的是,第二種選擇有嚴重的缺點:整個應用狀態丟失。 –
有一件事情使它對我有效:不要將它作爲壓縮文件進行部署。在eclipse Wildfly屬性中,不要選中「將項目部署爲壓縮存檔」選項 –