1. 程式人生 > >Java專案部署與遠端除錯兩三事

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="^.*$"