相关推荐recommended
Java进阶-Tomcat发布JavaWeb项目
作者:mmseoamin日期:2024-02-03

对于云服务器,程序员一般不会陌生,如果项目需要发布到现网,那么服务器是必不可缺的一项硬性条件,那么如何在云服务器上部署一个项目,需要做哪些配置准备,下面就由本文档为大家讲解,本篇以Tomcat服务器发布J2EE项目为例。

Java进阶-Tomcat发布JavaWeb项目,java000 - Windows用Tomcat发布Java项目,第1张


一、打包 Java 项目

准备一个可运行的Javaweb项目,mysql连接正常,在eclipse中将项目打成war文件

Java进阶-Tomcat发布JavaWeb项目,java001 - Windows用Tomcat发布Java项目,第2张

Java进阶-Tomcat发布JavaWeb项目,java002 - Windows用Tomcat发布Java项目,第3张

Java进阶-Tomcat发布JavaWeb项目,java003 - Windows用Tomcat发布Java项目,第4张

Java进阶-Tomcat发布JavaWeb项目,java004 - Windows用Tomcat发布Java项目,第5张

Java进阶-Tomcat发布JavaWeb项目,java005 - Windows用Tomcat发布Java项目,第6张


 二、准备云服务器

优惠的购买链接:年度爆款2核2G4M云服务器118元/年,新老用户同享

Java进阶-Tomcat发布JavaWeb项目,java009 1024x670 - Windows用Tomcat发布Java项目,第7张

购买好了进入控制台,找到刚刚购买的服务器,点击登录

Java进阶-Tomcat发布JavaWeb项目,java010 1024x442 - Windows用Tomcat发布Java项目,第8张

下载RDP文件

Java进阶-Tomcat发布JavaWeb项目,java011 1024x721 - Windows用Tomcat发布Java项目,第9张

Java进阶-Tomcat发布JavaWeb项目,java012 - Windows用Tomcat发布Java项目,第10张

双击进入,会要求输入用户名密码,忘了回控制台重置

Java进阶-Tomcat发布JavaWeb项目,java013 1024x289 - Windows用Tomcat发布Java项目,第11张

进入后图,服务器就相当于放在腾讯的一部电脑,但是这台电脑具有内网和外(公)网两个ip,我们正常在本地发布应用,外网是访问不到的。在云服务器上本地发布,就相当于直接发布在外网,所有终端都可以访问。

Java进阶-Tomcat发布JavaWeb项目,java014 1024x561 - Windows用Tomcat发布Java项目,第12张


三、环境云服务器配置

1、安装 JDK

安装JDK,进https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载exe,双击安装。

Java进阶-Tomcat发布JavaWeb项目,java015 - Windows用Tomcat发布Java项目,第13张

(1)新建环境变量JAVA_HOME

变量名:JAVA_HOME

变量值:C:\Program Files\Java\jdk1.8.0_221

Java进阶-Tomcat发布JavaWeb项目,java016 - Windows用Tomcat发布Java项目,第14张

(2)配置path

变量名:path

变量值最前面加上%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

(如果原先的值没有用;结尾,要补一个;把值隔开)

Java进阶-Tomcat发布JavaWeb项目,java017 - Windows用Tomcat发布Java项目,第15张

(3)新增CLASSPATH变量

变量名:CLASSPATH

变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

Java进阶-Tomcat发布JavaWeb项目,java018 - Windows用Tomcat发布Java项目,第16张

(4)执行java -version如果出现如下图界面则证明安装成功

Java进阶-Tomcat发布JavaWeb项目,java019 - Windows用Tomcat发布Java项目,第17张


2、安装 MySQL

Windows上安装MySQL

点击链接https://dev.mysql.com/downloads/mysql/下载 zip 包。

Java进阶-Tomcat发布JavaWeb项目,java020 1024x719 - Windows用Tomcat发布Java项目,第18张

Java进阶-Tomcat发布JavaWeb项目,java021 1024x739 - Windows用Tomcat发布Java项目,第19张

直接解压到想要安装的目录

Java进阶-Tomcat发布JavaWeb项目,java022 - Windows用Tomcat发布Java项目,第20张

创建my.ini文件,内容写为:

[mysqld]
port=3306
#basedir是安装路径,datadir是安装路径\Data
basedir=C:\mysql-8.0.17-winx64
datadir=C:\mysql-8.0.17-winx64\Data
max_connections=200
max_connect_errors=10
character-set-server=utf8mb4
default-storage-engine=MyISAM
default_authentication_plugin=mysql_native_password
[mysql]
default-character-set=utf8mb4
[client]
port=3306
default-character-set=utf8mb4

Java进阶-Tomcat发布JavaWeb项目,java023 1024x600 - Windows用Tomcat发布Java项目,第21张

配置环境变量

变量名:MYSQL_HOME

变量值:C:\mysql-8.0.17-winx64

Java进阶-Tomcat发布JavaWeb项目,java024 1024x581 - Windows用Tomcat发布Java项目,第22张

Java进阶-Tomcat发布JavaWeb项目,java025 1024x860 - Windows用Tomcat发布Java项目,第23张

Java进阶-Tomcat发布JavaWeb项目,java026 - Windows用Tomcat发布Java项目,第24张

以管理员身份打开 cmd 命令行工具,切换目录:

cd C:\web\mysql-8.0.11\bin

Java进阶-Tomcat发布JavaWeb项目,java027 - Windows用Tomcat发布Java项目,第25张

Java进阶-Tomcat发布JavaWeb项目,java028 - Windows用Tomcat发布Java项目,第26张

初始化数据库:

mysqld –initialize –console

执行完成后,会输出 root 用户的初始默认密码,如:

2019-09-20T02:35:05.464644Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: APWCY5ws&hjQ

(APWCY5ws&hjQ 就是初始密码,可以在登陆后修改密码)

输入以下安装命令:

mysqld install

启动输入以下命令即可:

net start mysql

正常情况:

Java进阶-Tomcat发布JavaWeb项目,java029 - Windows用Tomcat发布Java项目,第27张

异常情况:

Java进阶-Tomcat发布JavaWeb项目,java030 - Windows用Tomcat发布Java项目,第28张

查看服务有没有开启,如果MySQL服务正常,这种情况不影响使用

Java进阶-Tomcat发布JavaWeb项目,java031 - Windows用Tomcat发布Java项目,第29张

登录MySQL: mysql -u root -p

Java进阶-Tomcat发布JavaWeb项目,java032 - Windows用Tomcat发布Java项目,第30张

设置(或修改)root用户密码:

mysql> update mysql.user set authentication_string=password(“****”) where user = “root”;  

(此处引号中的内容是密码,自己可以随便设置,为了后边方便不用修改war包中的连接配置,建议和本地MySQL设置一样的密码)

保存修改后的密码:

mysql> flush privileges;  #作用:相当于保存,执行此命令后,设置才生效,若不执行,还是之前的密码不变


3、安装 Tomcat

注册tomcat,要用到tomcat的service.bat,如果你的tomcat没有这个,就重新下载一个有service.bat的tomcat。

点击Archives

Java进阶-Tomcat发布JavaWeb项目,java033 - Windows用Tomcat发布Java项目,第31张

选择需要的版本,我用的是v8.5.45,选好了点击去之后再点击bin/

Java进阶-Tomcat发布JavaWeb项目,java034 - Windows用Tomcat发布Java项目,第32张

选择这个下载

Java进阶-Tomcat发布JavaWeb项目,java035 - Windows用Tomcat发布Java项目,第33张

下载完解压到想要存放的安装目录

我的tomcat的路径是:C:\Program Files\apache-tomcat-8.5.45所以下列的变量值就是我的tomcat路径:

(1)新建变量名:CATALINA_BASE

变量值:C:\Program Files\apache-tomcat-8.5.45

(2)新建变量名:CATALINA_HOME

变量值:C:\Program Files\apache-tomcat-8.5.45

Java进阶-Tomcat发布JavaWeb项目,java036 - Windows用Tomcat发布Java项目,第34张

(3) 编辑变量名: Path

添加变量值:;%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;

(分号是把path的各个变量分开)

Java进阶-Tomcat发布JavaWeb项目,java037 - Windows用Tomcat发布Java项目,第35张

修改conf文件夹里的server.xml文件,如图,port是端口,一般是8080,我自己设得是70,添加URIEncoding=”UTF-8″,防止中文乱码。

Java进阶-Tomcat发布JavaWeb项目,java038 1024x386 - Windows用Tomcat发布Java项目,第36张

管理员身份打开cmd, cd到tomcat的bin目录,输service install安装服务。

Java进阶-Tomcat发布JavaWeb项目,java039 - Windows用Tomcat发布Java项目,第37张

(这张图借的,版本号和我的不一样,只做示意)

在服务里可以看到有tomcat8了

Java进阶-Tomcat发布JavaWeb项目,java040 - Windows用Tomcat发布Java项目,第38张

后面启动直接startup,只要tomcat这个窗口不关,外网就可以直接访问部署在里面的项目。

Java进阶-Tomcat发布JavaWeb项目,java041 - Windows用Tomcat发布Java项目,第39张

浏览器网址输入localhost:70/ 配置成功会跳到此页面。

Java进阶-Tomcat发布JavaWeb项目,java042 - Windows用Tomcat发布Java项目,第40张


四、数据迁移到服务器

1、本地数据备份SQL

我们需要把本地的数据迁移到服务器上的数据库上。

我用的Navicat,推荐下面这个免安装的版本:

链接:https://pan.baidu.com/s/1y9flZHD9AgGfhz1pebPNyg

提取码:kkaf

Java进阶-Tomcat发布JavaWeb项目,java006 - Windows用Tomcat发布Java项目,第41张

Java进阶-Tomcat发布JavaWeb项目,java007 - Windows用Tomcat发布Java项目,第42张

备份成功,后面只要把这个SQL文件导入数据库就可以了

Java进阶-Tomcat发布JavaWeb项目,java008 - Windows用Tomcat发布Java项目,第43张


2、云数据库导入SQL

把备份的sql数据存到云服务器的MySQL里面

我在云端也有一个Navicat

Java进阶-Tomcat发布JavaWeb项目,java043 - Windows用Tomcat发布Java项目,第44张

数据已经在数据库里了

Java进阶-Tomcat发布JavaWeb项目,java044 - Windows用Tomcat发布Java项目,第45张


五、部署 Java 项目

把war包放在tomcat安装目录的webapps下

Java进阶-Tomcat发布JavaWeb项目,java045 - Windows用Tomcat发布Java项目,第46张

启动tomcat(cmd里startup),访问 localhost:70/CRM

Java进阶-Tomcat发布JavaWeb项目,java046 1024x501 - Windows用Tomcat发布Java项目,第47张


六、防火墙开放端口

1、防火墙开放端口

Java进阶-Tomcat发布JavaWeb项目,java047 - Windows用Tomcat发布Java项目,第48张


2、安全组开放端口

Java进阶-Tomcat发布JavaWeb项目,java048 1024x66 - Windows用Tomcat发布Java项目,第49张


七、测试发布是否成功

这时再用本地的浏览器已经可以访问云服务器上的项目了。

Java进阶-Tomcat发布JavaWeb项目,java049 1024x534 - Windows用Tomcat发布Java项目,第50张

Java进阶-Tomcat发布JavaWeb项目,java050 - Windows用Tomcat发布Java项目,第51张


八、常见问题

① 连接MySQL的时候报错The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrec。

500报错:java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

解决方法:在语句”jdbc:mysql://localhost:3366/db_crm “后添加”?serverTimezone=GMT%2B8″:

Java进阶-Tomcat发布JavaWeb项目,java051 1024x157 - Windows用Tomcat发布Java项目,第52张


② 关于Unknown character set index for field ‘255’ received from server

原因是MySQL版本高,mysql的jar版本低造成mysql与jar的编码错乱引起的

链接:https://pan.baidu.com/s/18rxjcc9bfuCO8NOSVh0EVQ

提取码:2c3x

把mysql-connector-java-8.0.11.jar这个jar包复制到项目文件夹下WebContent\WEB-INF\lib里。

Java进阶-Tomcat发布JavaWeb项目,java052 - Windows用Tomcat发布Java项目,第53张

替换过后可能会出现 [在工程和使用过原来包的java文件上会出现红叉],将有红叉的java文件找到,将有红×的那一行删掉,再重新导那个包就可以了。


③ 运行过程中,jQuery前端框架自带easyui-lang-zh_CN.js里的中文乱码了

因为在服务器之前本地运行是正常的,所以排除项目本身的问题,腾讯云为了用户的傻瓜式操作,不会让我们去为了基础功能手动改配置的,所以也不可能有问题。最后排除到版本不同的tomcat上。

步骤一:

在tomcat目录下的conf文件夹下,打开server.xml文件 ;

在Connector 中添加 URIEncoding=”UTF-8″;

Java进阶-Tomcat发布JavaWeb项目,java053 1024x386 - Windows用Tomcat发布Java项目,第54张

步骤二:

在tomcat目录下的bin文件夹下,打开catalina.bat文件

Java进阶-Tomcat发布JavaWeb项目,java054 - Windows用Tomcat发布Java项目,第55张

setlocal下增加一行:

set JAVA_OPTS=-Dfile.encoding=UTF8

Java进阶-Tomcat发布JavaWeb项目,java055 1024x481 - Windows用Tomcat发布Java项目,第56张

步骤三:

打开注册表,找到HKEY_CURRENT_USER→Console→Tomcat,找到CodePage项,没有则创建,更改值为十进制的65001,点击确定。

或直接复制下面代码,保存为.bat文件,直接运行。

set rr="HKCU\Console\Tomcat"
reg add %rr% /v "CodePage" /t REG_DWORD /d 0x0000fde9 /f>nul \

重新启动tomcat后,完美解决。