Liubsyy / HotSecondsIDEA

HotSeconds是一款Java远程热部署的插件,可实现秒级一键化热更新。插件分为HotSecondsClient(IDEA热部署插件)和HotSecondsServer(服务端javaagent热更新插件),理论上来说可以热更新任何文件(java/xml/html/css/js等),也支持常用框架(Spring,MyBatis)的热更新,可以节省大量的传统部署java项目的时间。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

【持续更新】常见问题和解决方案

Liubsyy opened this issue · comments

一. 服务器启动失败问题

1. 版本问题

jdk版本和dcevm版本不一致,请先确保版本是一致的。

2. 报错Must use the serial GC这一类问题

请把用GC相关的jvm参数都删掉,包括但不限于 -XX:+UseParNewGC, -XX:+UseConcMarkSweepGC,-XX:ParallelGCThreads ,-XX:+UseCMSCompactAtFullCollection ,-XX:CMSInitiatingOccupancyFraction 等等,如果启动不起来也没有报错日志一般就是参数没删干净,如果不确定可以先只加最基本的jvm参数看看能不能起来

3. 没有报错日志,但就是起不来

先确保第2步中的参数都是正确的,如果都改完了,还是有问题

先用jps看看是哪个进程pid,然后用jstack -l pid > 1.log,搜索deadlock看看有没有具体的报错,报错信息可以发一下。

服务器启动成功后有日志

HotDeployService热部署服务启动成功

二. 连接服务器失败问题

1.先确保远程端口起来了

服务端用netstat/lsof看看端口是不是起来了,客户端用telnet/nc -zv 能连通远程的端口

2.连接服务器失败报错,但是报错ip和远程ip不一致

升级到HotSecondsServer-future2版本以上,然后在服务端加上启动参数 -Djava.rmi.server.hostname=远程ip

三. 热加载任何一个类都失败

连接远程正常,但是热加载任何一个类报错fail或者报错Can't find classloader in server,please check hot-seconds-remote.xml,一般是hot-seconds-remote.xml中的classloader配错了,可以远程断点,然后随便找个类A,看看A.class.getClassLoader()是哪个,填到配置文件即可。