问题:
Eclipse Oxygen.2 Release (4.7.2),这个版本的eclipse不能采用热加载方式启动,启动时报错:
java.lang.IllegalAccessError: class sun.reflect.GeneratedConstructorAccessor4 cannot access its superclass sun.reflect.ConstructorAccessorImpl
出现这个问题的原因跟jetty的类加载有关,于是,我尝试修改了JettyServer中doStart方法里的WebAppContext的设置,添加了代码
webApp.setParentLoaderPriority(true);
然后可以正常启动了,修改代码后,自动重新加载时报了新的错误:
HikariDataSource (HikariPool-1) has been closed.
查看了代码,是由于ActiveRecordPlugin在start的时候,没有重置config.dataSource,导致ActiveRecordPlugin里引用的数据源还是重启之前的,但是之前的数据源已经关闭了。
希望波总能解决这个问题,没有热加载,开发调试不方便了
添加上面代码后,所有的static变量都不会重置,可能问题根源还是在类加载器