2017-08-30 41 views
0

我可以在Hotswap Agent上添加新類嗎?我嘗試更改名稱方法,方法體,字段,並且工作正常,但是當我添加新類並在另一個應用程序崩潰時調用它時,請不要執行該類的內容並且不顯示錯誤。Hotswap Agent,添加新類

package test; 

public class TestNewClass 
{ 
     public void test() 
    { 
     System.out.println("test new class"); 
    } 
} 



@Controller 
public class MenuController extends MainController 
{ 
    @RequestMapping(value = "/menu/getMenu", method = RequestMethod.GET, produces = APPLICATION_JSON_VALUE_UTF_8) 
     @ResponseBody 
     public String getMenu(HttpServletResponse httpRessponse) 
     { 
      System.out.println("test 3 "+test); 
      UserVitrina user = getUserVitrina(); 
      MenuHandler menuHandler = new MenuHandler(); 
      try 
      { 
       genericBO.openSessionTransaction(); 
       Map menu = menuHandler.getMenu(user.getIdUsuario()); 
       genericBO.commitTransaction(); 
       return new Gson().toJson(menu); 
      } 
      catch (Exception ex) 
      { 
       new Log().printLogError("MENU. Error obtener menu.", ex, (user == null ? "usuario nulo" : user.getUsername()), null, Resources.LogName.DEBUG); 
       httpRessponse.setStatus(HttpStatus.BAD_GATEWAY.value()); 
       genericBO.abortTransaction(); 
       return new Gson().toJson(new MessageServer().generateMessageError(ex)); 
      } 
      finally 
      { 
       genericBO.closeSession(); 
      } 
     } 
} 
+0

DCEVM + HotswapAgent都支持類定義/重定義。 – skybber

回答

0

如果你用IDE做了熱切換,它只交換現有的類。新類由類路徑中的標準機制加載。你在類路徑中的新類是什麼?如果你有例如multimodule maven項目,您可能能夠從依賴模塊交換類,但新類只能從構建的jar文件加載。

要解決此問題,請在您的hotswap-agent.properties文件中添加extraClaspath(http://hotswapagent.org/mydoc_configuration.html)。