2017-08-30 3 views
0

Kann ich neue Klasse auf dem Hotswap Agent hinzufügen? Ich versuche, Namen Methoden, Körper der Methoden, Felder zu ändern, und funktioniert gut, aber wenn ich neue Klasse hinzufügen und rufen Sie auf einem anderen den App-Absturz, don tun den Inhalt dieser Klasse und keine Fehler anzuzeigen.Hotswap Agent, neue Klassen hinzufügen

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

Klassendefinition/Neudefinition werden beide von DCEVM + HotswapAgent unterstützt. – skybber

Antwort

0

Wenn Sie hotswap mit Ihrem IDE tun, es tauscht nur bestehende Klassen. Neue Klassen werden vom Standardmechanismus aus dem Klassenpfad geladen. Ist deine neue Klasse auf dem Klassenpfad? Wenn Sie z.B. Wenn Sie ein multimodules Maven-Projekt verwenden, können Sie möglicherweise Klassen aus dem abhängigen Modul auslagern, aber neue Klassen werden nur aus den eingebauten JAR-Dateien geladen.

Um dies zu lösen, fügen Sie extraClaspath (http://hotswapagent.org/mydoc_configuration.html10) zu Ihrer Datei hotswap-agent.properties hinzu.