由于IDEA未集成TongWeb,而且TongWeb在我本地使用高版本的Oracle JDK,及OpenJDK启动失败(目前测试仅Oracle JDK 8u251可正常启动,其他低版本未试。)
遂直接使用同事制作好的docker镜像,开启5005远程调试端口调试(需在TongWeb启动后进入 “启动参数配置 - 其他jvm参数” 添加 “-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005” 使用,参数添加完毕重启容器生效 )
相关脚本如下,配合Alibaba Cloud Toolkit插件实现zip包上传自动解包,修改配置,手动执行restart_tongweb.sh脚本重启容器操作
unpackage.sh(解压缩zip包并修改配置文件)
#!/bin/bash dir=/opt/tongweb/webapps cd $dir if [ -f "$dir/admin_war_exploded.zip" ]; then unzip admin_war_exploded.zip rm -rf admin mv admin_war_exploded admin sed -i 's/192.168.36.107:8080/172.16.249.64:8088/g' $dir/admin/WEB-INF/web.xml sed -i 's/192.168.36.107:8080/172.16.249.64:8088/g' $dir/admin/WEB-INF/classes/config.properties fi cd $dir if [ -f "$dir/portal_war_exploded.zip" ]; then unzip portal_war_exploded.zip rm -rf portal mv portal_war_exploded portal sed -i 's/192.168.36.107:8080/172.16.249.64:8088/g' $dir/portal/WEB-INF/web.xml sed -i 's/192.168.36.107:8080/172.16.249.64:8088/g' $dir/portal/WEB-INF/classes/config.properties fi
redeploy_tongweb.sh(重新部署TongWeb,重新部署后需重新添加jvm远程调试参数)
#!/bin/bash docker rm -fv tongweb docker run -d --name tongweb -p 9060:9060 -p 8088:8088 -p 5005:5005 -v /opt/tongweb/lib/tongweb.jar:/srv/tongweb7/tongweb7/lib/tongweb.jar -v /opt/tongweb/conf/tongweb.xml:/srv/tongweb7/tongweb7/conf/tongweb.xml -v /opt/tongweb/webapps:/srv/webapps tongweb:7 && docker logs -f tongweb
restart_tongweb.sh(清除日志并重启TongWeb)
#!/bin/bash name=tongweb id=$(docker inspect -f {{.Id}} $name) echo "" > /var/lib/docker/containers/$id/$id-json.log docker restart $name docker logs -f $name