天天看点

在远程Linux服务器上安装部署Tamcat及web项目(二)上一篇:在远程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

在远程Linux服务器上安装部署Tamcat及web项目(二)上一篇:在远程Linux服务器上安装部署Tamcat及web项目(一)

使用命令

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"
           
在远程Linux服务器上安装部署Tamcat及web项目(二)上一篇:在远程Linux服务器上安装部署Tamcat及web项目(一)
在远程Linux服务器上安装部署Tamcat及web项目(二)上一篇:在远程Linux服务器上安装部署Tamcat及web项目(一)

 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 出错

在远程Linux服务器上安装部署Tamcat及web项目(二)上一篇:在远程Linux服务器上安装部署Tamcat及web项目(一)

 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。这样,再重新部署一下,就不会报错了。图中是已经添加完了的

在远程Linux服务器上安装部署Tamcat及web项目(二)上一篇:在远程Linux服务器上安装部署Tamcat及web项目(一)

2.2 服务器配置

在远程Linux服务器上安装部署Tamcat及web项目(二)上一篇:在远程Linux服务器上安装部署Tamcat及web项目(一)

2.3 增加远程服务器

在远程Linux服务器上安装部署Tamcat及web项目(二)上一篇:在远程Linux服务器上安装部署Tamcat及web项目(一)

2.4  配置页面

在远程Linux服务器上安装部署Tamcat及web项目(二)上一篇:在远程Linux服务器上安装部署Tamcat及web项目(一)

2.5 点击 上图中Host 后面的 ...,配置如下

在远程Linux服务器上安装部署Tamcat及web项目(二)上一篇:在远程Linux服务器上安装部署Tamcat及web项目(一)

2.6  添加war包

在远程Linux服务器上安装部署Tamcat及web项目(二)上一篇:在远程Linux服务器上安装部署Tamcat及web项目(一)
在远程Linux服务器上安装部署Tamcat及web项目(二)上一篇:在远程Linux服务器上安装部署Tamcat及web项目(一)

完成以上步骤,基本就可以完成相关的准备工作了,然后部署就可以了,不过这中间可能会出现很多错误。 

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也会报这个错误