2017-08-30 4 views
0

Puis-je ajouter une nouvelle classe sur Hotswap Agent? J'essaie de changer les méthodes de nom, le corps des méthodes, les champs et fonctionne bien, mais quand j'ajoute une nouvelle classe et l'appelle sur un autre plantage de l'application, je fais le contenu de cette classe et ne montre pas les erreurs.Agent Hotswap, ajouter de nouvelles classes

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

La définition/redéfinition de classe est prise en charge par DCEVM + HotswapAgent. – skybber

Répondre

0

Si vous faites un hotswap avec votre IDE, il échange uniquement les classes existantes. Les nouvelles classes sont chargées par le mécanisme standard à partir du classpath. Est-ce que votre nouvelle classe est sur le classpath? Si vous avez par exemple projet multimodule maven, vous pouvez échanger des classes à partir du module dépendant, mais les nouvelles classes ne sont chargées qu'à partir de fichiers jar construits. Pour résoudre ce problème, ajoutez extraClaspath (http://hotswapagent.org/mydoc_configuration.html) à votre fichier hotswap-agent.properties.