2020-12-25 16:22

@JFinal jrebel这么牛,想了解除原理 网络上找了一遍,没搞明白,倒是搜索到阿里的HotCode相关资料,可惜网络没有找到可用程序。

HotCode资料:https://www.open-open.com/ppt/54489ff66016406d8c06292637e59910.html

2020-12-24 15:58

@JFinal 刚搜索了试用了下你说到的jrebel,发现其是热加载技术,支持类的添加,方法添加等操作而不会丢失内存对象状态。已经在我的idea intellij是安装并初步使用,开发体验优于idea的默认debug模式(主要优化debug不支持的类添加,方法添加等等热加载操作)。真不错。

2020-12-24 12:34

@JFinal 原来是这样的啊,开发时如果能热部署的话,还是挺不错的。不过我最新开发发现由于shiro session的问题影响我的开发效率,所以,我就研究了一番。
那如果deMode = false会不会影响到其它功能开发体验呢?(会不会影响其它功能的开发,缓存 的更新?),即:有需要给热部署独立设置一个开关吗(在热部署还未成熟时)?

2020-12-22 15:26

发现当页面有websocket连接时,热部署出现上述异常,并且undertow结束,无法服务。

2020-08-05 14:47

通过手动设置类加载器为系统默认加载器后,有效
context.setClassLoader(ClassLoader.getSystemClassLoader());

2020-08-05 14:25

@lxhxka
发现的确不一样,不知道为何会不一样。
curInterClass 的 类加载器为:sun.misc.Launcher$AppClassLoader@18b4aac2
ci 的 类加载器为:org.eclipse.jetty.webapp.WebAppClassLoader=jfinal offical website@72d1ad2e

2020-08-04 13:16

@lxhxka 自己写jetty代码加载, 用java Runtime.exec执行main方法启动:

public static void main(String[] args) {
String port = args[0];
String webRoot = args[1];
String extClassPath = args[2];
System.out.println("port:" + args[0] + "\nwebRoot:" + args[1] + "\nextClassPath:" + extClassPath + "\n");
try {
startWithJetty(Integer.parseInt(port), webRoot, extClassPath);
} catch (Exception exception) {
exception.printStackTrace();
}
}

public static void startWithJetty(int port, String webroot, String extClassPath) throws Exception {
Server server = new Server(port);
WebAppContext context = new WebAppContext();
context.setContextPath("/");
context.setResourceBase(webroot);// 指定webapp目录
context.setExtraClasspath(extClassPath);
server.setHandler(context);
server.start();
server.join();
}

2020-08-03 20:10

@JFnial

2019-09-17 15:45

关于Jfinal-undertow在 Intellij IDEA 下执行时模板路径不正确问题解决!
https://my.oschina.net/imlzw/blog/3106769