• 保存到桌面  加入收藏  设为首页
系统调优

调优-Spring常规项目和SpringBoot远程调试

时间:2019-01-15 16:13:40   作者:江节胜   来源:胜行天下网   阅读:355   评论:1

1. 常规Spring项目

war包在tomcat/webapps下启动并运行

相关远程服务器tomcat配置和端口访问问题见
《Tomcat性能监控与调优.md》

2. SpringBoot项目

2.1 直接将源码上传到远程服务器【实测失败】

(或在git、snv仓库中继续操作)

2.1.1 在pom.xml中配置启动参数

  • 配置启动参数
           -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
  • 打包上传并解压到linux服务器
    //打包
    
    tar -zcvf spring-boot-test-with-pom-config.tar.gz spring-boot-test/
    
    //rz命令上传
    
    ...
    
    //解压
    
    tar -zxvf spring-boot-test-with-pom-config.tar.gz
  • 启动SpringBoot项目
    mvn package spring-boot:run -Dmaven.test.skip=true
    
    //or
    
    mvn clean package spring-boot:run -Dmaven.test.skip=true
  • 远程调试端口成功启动提示
    [INFO] <<< spring-boot-maven-plugin:2.0.4.RELEASE:run (default-cli) @ SpringBoot <<< [INFO] [INFO] --- spring-boot-maven-plugin:2.0.4.RELEASE:run (default-cli) @ SpringBoot --- [INFO] Attaching agents: [] Listening for transport dt_socket at address: 8000
  • 测试
    Step A> idea添加Remote configuration
    Step B> 添加linux服务器ip和8000端口(虚拟机下由于网段不同导致不能访问参考《Tomcat性能监控与调优.md》)
    Step C> 启动Remote (同时关闭idea中的tomcat进程)
    Step D> 浏览器中访问测试网址


    //此8081端口是通过springboot中server.port=8081指定
    
    http://192.168.85.128:8081/api/user/adduser?name=11&age=2

注1:

上述 Step C、Step D可能出现连接失败或者请求失败

排查过程

//首先确定linux环境中的8000和8081端口是否都启动

 netstat -ntlp

 //环境较为复杂时执行

 netstat -ntlp | grep 80*

结果

  用于远程调试的8000端口启动成功用于SpringBoot的8081端口未启动 (实测未能启动成功暂停调试)

2.1.2 使用命令行添加启动命令,pom.xml中不配置

按照上述步骤打包源码到linux服务器

  • 执行命令行
    //8000失败
    
    mvn package spring-boot:run -Dmaven.test.skip=true -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
    
    //8000失败
    
    mvn clean package spring-boot:run -Dmaven.test.skip=true -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
  • pom.xml添加打包方式
    jar
  • 生成jar包
    mvn clean package -Dmaven.test.skip=true
  • 按照上述步骤将jar包提交到linux系统并启动jar包
    java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -jar SpringBoot-0.0.1-SNAPSHOT.jar

注2:

实测linux系统中8000和8081端口都已经启动时idea无法连接到8000的调试端口8081的接口也无法访问。尝试关闭防火墙也无效。解决方法将以上2个端口都加入防火墙并启动防火墙。修改和启动防火墙见 http://www.jiangjiesheng.com/dev/study/java/mmall/backend-1/ 【Ctrl+F搜索iptables】。然后重新连接并测试。

完成日期20190110

有任何疑问或技术合作都可联系我

微信:yanfahezuo 【推荐】

QQ:596957738


上一篇:没有了
下一篇:调优-Java生产环境下性能监控与调优
相关评论

加我微信 596957738 (QQ同号)加我微信     QQ联系:596957738    地址:江苏省南京市浦口区

苏ICP备2023050353号

   

苏公网安备32011402010305号

江节胜的Gitee,江节胜的Git地址