在遠程Linux服務器上安裝部署Tamcat及web項目(二)

上一篇:在遠程Linux服務器上安裝部署Tamcat及web項目(一)

這部分是將本地編寫好的代碼部署到Tomcat遠程服務器中(linux)

如果要在遠程服務其中安裝JDK,Mysql,Tomcat可以訪問下面地址

在遠程Linux服務器上安裝部署Tamcat及web項目(一)

參考鏈接:

https://www.cnblogs.com/jpfss/p/9023591.html

https://blog.csdn.net/kevin_virus/article/details/81388525

在idea中部署遠程Tomcat

1. 服務端的配置

1.1 tomcat安裝路徑

 /usr/local/tomcat8.5/apache-tomcat-8.5.43

1.2 我們在bin目錄下找到catalina.sh

使用命令

vi catalina.sh

在文件中加入

#我是加的這個,這個可以成功!
JAVA_OPTS="-Dcom.sun.management.jmxremote=
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.rmi.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=47.93.254.64"
 
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
 
export JAVA_OPTS


#這是其他的方法
CATALINA_OPTS="-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=1099 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=47.93.254.64"
 
JAVA_OPTS="-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=1099 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.rmi.port=1099"

 

 1.3 配置好後,保存,啓動服務器

#之前啓動的是
./startup.sh

#現在要啓動
./catalina.sh run

#上面這樣啓動的話會導致當前終端被阻塞,並且關閉終端後無法繼續後臺運行
#可以將上面的命令改爲下面的
./catalina.sh run > /dev/null 2>&1 &

1.4  mysql5.7以上版本需要設置一下

報錯:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ''

進入mysql

mysql -uroot -p

然後執行下面兩個步驟就可以了,注意這裏重啓mysql後,還需要重新進行設置

select @@global.sql_mode

可以看到模式中包含了ONLY_FULL_GROUP_BY,只要沒有這個配置即可。 

set @@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

 

1.5 出錯排除

https://www.cnblogs.com/rogear/p/7435074.html

https://blog.csdn.net/synchro2014/article/details/87944665

1.6 ./catalina.sh 出錯

 

 1.7 1099端口出錯

intellij idea部署ssm/web項目到遠程tomcat遇到的1099端口問題

也有可能程序出錯!

可以查看tomcat安裝路徑下的logs文件下catalina.xxx.log文件,cat 查看

 

 2. 配置IDEA

2.1 加包

如果沒有這一步,後面可能會報錯:java.lang.IllegalStateException: Illegal access: this web application instance has been stopped alr

出現這個錯誤的原因是找不到相應的jar包。

配置:可是用idea明明已經幫我們導入了呀?原來是,idea創建的jar包放在src目錄下的lib文件夾裏。而運行服務器時,需要在WEB-INF下找到lib目錄。這裏要點擊在左上角的file,program structure,artifact中,點擊相應的包右鍵,選擇put into web-INF lib。這樣,再重新部署一下,就不會報錯了。圖中是已經添加完了的

2.2 服務器配置

2.3 增加遠程服務器

2.4  配置頁面

2.5 點擊 上圖中Host 後面的 ...,配置如下

2.6  添加war包

 

完成以上步驟,基本就可以完成相關的準備工作了,然後部署就可以了,不過這中間可能會出現很多錯誤。 

3.  出錯情況

3.1 描述當使用IDEA連接之後,IDEA顯示錯誤,然後在服務器上操作,進入

 /usr/local/tomcat8.5/apache-tomcat-8.5.43/bin/

中,使用命令 ./shutdown.sh

報錯:

Aug 12, 2019 7:42:00 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Could not contact [localhost:[8005]]. Tomcat may not be running.
Aug 12, 2019 7:42:00 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop: 
java.net.ConnectException: Connection refused (Connection refused)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at java.net.Socket.connect(Socket.java:538)
	at java.net.Socket.<init>(Socket.java:434)
	at java.net.Socket.<init>(Socket.java:211)
	at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:504)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:406)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:498)

 3.2 解決方法:

(1)使用

修改$JAVA_HOME/jre/lib/security/Java.security 文件中 securerandom.source 配置項:

將 
securerandom.source=file:/dev/random 
修改爲: 
securerandom.source=file:/dev/urandom 
或者
securerandom.source=file:/dev/./urandom

 都沒有解決!

(2)在文件catalina.sh中添加

JAVA_OPTS="-Dcom.sun.management.jmxremote=
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.rmi.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=47.93.254.64"
 
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
 
export JAVA_OPTS

添加位置

 

然後查找tomcat進程並殺死進程

ps -ef | grep tomcat
kill -9 進程號

開啓tomcat

./startup.sh

(3) 也有可能是沒有開啓tomcat也會報這個錯誤

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章