2016-04-29 202 views
6

我有一些問題使用彈簧加載彈簧mvc。我在服務器上添加了彈簧加載的jar作爲java代理。使用彈簧加載在彈簧mvc框架

現在,當我在我的情況下添加新的方法,例如我添加了一個新的方法testHomes(),它給了我這個對話框。 enter image description here

下面是我的配置 enter image description here

enter image description here

我還檢查了自動構建 我使用Spring框架4.2.5.RELEASE。

我從以下鏈接 SpringLoaded

與「熱代碼替換」只允許一次一個JVM簡單的改變正在運行(例如更改方法體),彈簧加載允許你添加檢查/修改/刪除方法/字段/構造函數。類型/方法/字段/構造函數上的註釋也可以修改,並且可以在枚舉類型中添加/刪除/更改值。

有什麼辦法可以使這項工作?

問候,

+0

您的配置非常完美。但是它們是Spring加載的一些內部問題。所以它不能在外部重新部署的情況下加載新的方法。嘗試改變方法內的一些行。我認爲,它會正常工作。 –

+0

是的,當我改變現有方法的主體時,它很好。快速瀏覽Spring加載的描述引起了我的注意,它說:「與'熱代碼替換'不同的是,一旦JVM運行(例如更改方法體),它只允許進行簡單的更改,Spring Loaded允許您添加/修改/刪除方法/ fields/constructors。還可以修改類型/方法/字段/構造函數的註釋,並可以在枚舉類型中添加/刪除/更改值。「 –

+0

我在他們的文檔中看到,您需要將'-noverify'參數傳遞給JVM,但在JVM配置中沒有看到。它似乎不是可選的。 – Gus

回答

1

什麼是熱代碼替換?:

熱代碼替換(HCR)是一個調試技術,由此在Eclipse Java調試器在調試信道到另一個JVM發送新的類文件。在Eclipse開發的情況下,這也適用於運行運行時工作臺的VM。其思想是,您可以在給定的運行時工作臺上啓動調試會話,並在開發工作臺中更改Java文件,並且調試器將在運行時替換接收VM中的代碼。不需要重新啓動,因此引用「熱」。

當它的工作原理:當類簽名不改變

HCR只適用;例如,您不能刪除或添加字段到現有的類。但是,HCR可以用來改變方法的主體。 HCR僅在1.4.1 VM及更高版本上可靠地實施,或者使用任何版本的IBM J9 VM。 IBM產品中提供了J9,例如Websphere Studio Device Developer。

故障排除問題:

  1. 檢查你正在運行在支持虛擬機的應用程序(注意到的是運行Eclipse中的JVM可能不一樣運行Java應用程序的JVM )。

  2. 檢查自動建築是否開啓。確保選中「Project> Build Automatically」。

  3. 檢查在Eclipse Tomcat服務器上選擇的以下選項。

    enter image description here

參考文獻:wiki.eclipse

+0

這是非常豐富的信息,但根據SpringLoaded wiki,添加一個方法應該與springLoaded一起使用,除非網站上給出的信息不正確.https://github.com/spring-projects/spring-loaded –

0

javaagent是JVM選項。所以它應該通過沒有D前綴。即您需要

-javaagent:springloaded-1.2.5.RELEASE.jar -noverify