Java项目部署与远程调试两三事

Posted kurama2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java项目部署与远程调试两三事相关的知识,希望对你有一定的参考价值。

【开启和进行远程调试】
参考https://blog.csdn.net/WSYW126/article/details/74853680
1、tomcat:配置catalina.sh jpda参数,主要是address
./catalina.sh jpda start

2、springboot
maven插件 or命令行

<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=xxxx</jvmArguments>
</configuration>
</plugin>

参数解释:

-Xdebug 
启用调试特性 
-Xrunjdwp 
启用JDWP实现,它包含若干子选项: 
transport=dt_socket 
JPDA front-end和back-end之间的传输方法。dt_socket表示使用套接字传输。 
address=XXXX 
JVM在默认在8000端口上监听请求,是指服务器上的。 注:这里前面的ip也可以规定。0.0.0.0接受所有。
server=y 
y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。 
suspend=y 
y表示启动的JVM会暂停等待,直到调试器连接上。 
suspend=y这个选项很重要。如果你想从Tomcat启动的一开始就进行调试,那么就必须设置suspend=y。

 

然后本地remote debug配置ip 端口号即可

 

【springboot热部署】
参考https://blog.csdn.net/qq_31868349/article/details/78553901

 

【tomcat部署多个项目的三种方式】
1、同一端口下多个应用
直接丢进去 或 通过管理页面 或 Host节点中加<Context>
详见https://blog.csdn.net/dreamstar613/article/details/75282962/
2、同一服务器下多个端口
server.xml加Service节点 改5个地方
Service name
<Connector port="8090" 这个改成要开放的。当然租用服务器还要在第三方后台开放端口。
<Connector port="8109" protocol="AJP/1.3" redirectPort="8443" /> 这行去掉
Engine name
host appBase="webapps"

3、多个tomcat服务器
(1)编辑环境变量:vi /etc/profile
加入以下代码(tomcat路径要配置自己实际的tomcat安装目录)
##########first tomcat###########
CATALINA_BASE=/usr/local/tomcat
CATALINA_HOME=/usr/local/tomcat
TOMCAT_HOME=/usr/local/tomcat
export CATALINA_BASE CATALINA_HOME TOMCAT_HOME
##########first tomcat############
##########second tomcat##########
CATALINA_2_BASE=/usr/local/tomcat_2
CATALINA_2_HOME=/usr/local/tomcat_2
TOMCAT_2_HOME=/usr/local/tomcat_2
export CATALINA_2_BASE CATALINA_2_HOME TOMCAT_2_HOME
##########second tomcat##########
保存退出。
再输入:source /etc/profile
才能生效
(2)配置bin/catalina.sh

# OS specific support. $var _must_ be set to either true or false.
在下面增加如下代码

export CATALINA_HOME=$CATALINA_2_HOME

export CATALINA_BASE=$CATALINA_2_BASE

(3)改server.xml三个端口

注:linux中 ./ 或sh 都是打开一个新的子shell运行脚本 source才是在当前shell中运行脚本 配置才可生效


【tomcat管理界面】
需改conf/tomcat-users.xml
加入
<role rolename="manager-gui"/>

<role rolename="manager-script"/>

<role rolename="admin-gui"/>

<role rolename="admin-script"/>

<user username="user" password="password" roles="tomcat,manager-gui,manager-script,admin-gui,admin-script"/>

详见https://blog.csdn.net/xiaochuju526/article/details/78937536

注:tomcat8.X以上需在/webapps/magager/META-INF/context.xml开放ip

<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />
</Context>
中间注释掉value节点或者替换为allow="^.*$"





























































以上是关于Java项目部署与远程调试两三事的主要内容,如果未能解决你的问题,请参考以下文章

利用 jrebel 热部署远程调试远程热部署 springboot项目 服务器上的代码

java进行远程部署与调试及原理解析

Eclipse远程调试(远程服务器端监听)

本地远程调试Linux 部署的web 项目

项目实现远程Debug调试

项目实现远程Debug调试