针对远程生产及测试环境中的应用,常用的自检方式就是使用远程debug;
springboot工程添加:-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 启动项目;
step1:创建项目启动脚本 touch exec.sh 添加如下参数
/usr/local/jdk1.8/bin/java -jar -server -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/heap/ -Xms256m -Xmx512m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9004 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dserver.connection-timeout=60000 -Dserver.tomcat.accept-count=1000 -Dserver.tomcat.max-threads=300 -Dserver.tomcat.min-spare-threads=65 /usr/local/jvm-performance-0.0.1-SNAPSHOT.jar &
step2:应用脚本启动项目 sh exec.sh
step3:本地工程标注断点:
@RestController
public class DebugController {
@RequestMapping("/debug")
public String debug() throws Exception {
User user1 = new User();
user1.setId("001");
user1.setAge(30);
user1.setName("张三");
System.err.println(user1.getName());
System.err.println(user1.getAge());
//-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
System.err.println("----------------");
return "debug";
}
}
step4:配置并启动远程debug 工程右键>Debug Configurations>Remote Java Application右键>New Configuration
step5:通过浏览器访问 http://192.168.85.140:8080/debug
【注意:远程Debug一定要保持本地代码与远程代码一致,否则会出现误差,跟踪定位依据远程代码信息】
关闭远程debug(用完一定要关闭):