2017-08-30 7 views
0

Hotswapエージェントに新しいクラスを追加できますか?私は名前のメソッド、メソッドの本体、フィールド、そしてうまく動作しようとしますが、新しいクラスを追加して別のクラスに呼び出すと、そのクラスの内容を行い、エラーを表示しません。Hotswapエージェント、新しいクラスを追加する

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)を追加します。

関連する問題