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();
}
}
}
1 ответ
Если вы делаете горячую замену с вашей IDE, она меняет только существующие классы. Новые классы загружаются стандартным механизмом из classpath. Ваш новый класс на пути к классам? Если у вас есть, например, многомодульный проект maven, вы можете поменять классы из зависимого модуля, но новые классы загружаются только из встроенных jar-файлов.
Чтобы решить эту проблему, добавьте extraClaspath ( http://hotswapagent.org/mydoc_configuration.html) в файл hotswap-agent.properties.