Java进阶-Tomcat发布JavaWeb项目

news/2024/6/3 22:02:21 标签: java, tomcat, 开发语言, 运维, eclipse, 服务器

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

<a class=java000 - Windows用Tomcat发布Java项目" class="left" height="238" src="https://img-blog.csdnimg.cn/img_convert/a0d4d2411273dbfb087745aded924e0b.jpeg" width="357" />


一、打包 Java 项目

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

<a class=java001 - Windows用Tomcat发布Java项目" class="left" height="714" src="https://img-blog.csdnimg.cn/img_convert/6d0728a5ae597ee333df7a66e32457c4.png" width="462" />

<a class=java002 - Windows用Tomcat发布Java项目" class="left" height="423" src="https://img-blog.csdnimg.cn/img_convert/8db79249a1dce9742bc53d441ed31eaf.png" width="466" />

<a class=java003 - Windows用Tomcat发布Java项目" class="left" height="556" src="https://img-blog.csdnimg.cn/img_convert/1eee432748687325ed2854dc3218a5f9.png" width="657" />

<a class=java004 - Windows用Tomcat发布Java项目" class="left" height="449" src="https://img-blog.csdnimg.cn/img_convert/0aeae70ec9779badaae8f4e7c9d56276.png" width="485" />

<a class=java005 - Windows用Tomcat发布Java项目" class="left" height="130" src="https://img-blog.csdnimg.cn/img_convert/0c47486e907d9d8a8a0602daf161aabe.png" width="118" />


 二、准备云服务器

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

<a class=java009 1024x670 - Windows用Tomcat发布Java项目" class="left" height="423" src="https://img-blog.csdnimg.cn/img_convert/62cf57ce59692fec7cd4bc4c3b796042.jpeg" width="646" />

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

<a class=java010 1024x442 - Windows用Tomcat发布Java项目" class="left" height="288" src="https://img-blog.csdnimg.cn/img_convert/1bc76bdeb873d6b0488cf4fe1fda0e69.png" width="668" />

下载RDP文件

<a class=java011 1024x721 - Windows用Tomcat发布Java项目" class="left" height="433" src="https://img-blog.csdnimg.cn/img_convert/8e3e1bb12f3231bc7a5018b5e380e7af.png" width="615" />

<a class=java012 - Windows用Tomcat发布Java项目" class="left" height="108" src="https://img-blog.csdnimg.cn/img_convert/ae8ff73b153d11fe70b59abcd46fb92d.png" width="101" />

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

<a class=java013 1024x289 - Windows用Tomcat发布Java项目" class="left" height="190" src="https://img-blog.csdnimg.cn/img_convert/b69cb256431b8a8776a7d0152a329c32.png" width="675" />

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

<a class=java014 1024x561 - Windows用Tomcat发布Java项目" class="left" height="352" src="https://img-blog.csdnimg.cn/img_convert/ae44aef840a606eaedaba40023c803f5.jpeg" width="643" />


三、环境云服务器配置

1、安装 JDK

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

<a class=java015 - Windows用Tomcat发布Java项目" class="left" height="372" src="https://img-blog.csdnimg.cn/img_convert/ab716dc2d049c4b42b3cf9fa41ff98f0.png" width="616" />

(1)新建环境变量JAVA_HOME

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

<a class=java016 - Windows用Tomcat发布Java项目" class="left" height="190" src="https://img-blog.csdnimg.cn/img_convert/a26bf3471cf3769d908163076a4c4664.png" width="473" />

(2)配置path

变量名:path
变量值最前面加上%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(如果原先的值没有用;结尾,要补一个;把值隔开)

<a class=java017 - Windows用Tomcat发布Java项目" class="left" height="209" src="https://img-blog.csdnimg.cn/img_convert/a7d4cf8731bfcb8c3239abc2c28dc405.png" width="473" />

(3)新增CLASSPATH变量

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

<a class=java018 - Windows用Tomcat发布Java项目" class="left" height="484" src="https://img-blog.csdnimg.cn/img_convert/eeaa47060c64d903efee21321eb9d3b6.png" width="539" />

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

<a class=java019 - Windows用Tomcat发布Java项目" class="left" height="126" src="https://img-blog.csdnimg.cn/img_convert/eb4c0b5f2b265a348017c049b0133191.png" width="567" />


2、安装 MySQL

Windows上安装MySQL

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

<a class=java020 1024x719 - Windows用Tomcat发布Java项目" class="left" height="457" src="https://img-blog.csdnimg.cn/img_convert/7413a59573a09e0a7161d560d1cfd1dd.jpeg" width="650" />

<a class=java021 1024x739 - Windows用Tomcat发布Java项目" class="left" height="465" src="https://img-blog.csdnimg.cn/img_convert/87e21763c88e4aebacdd6813ba89cab2.png" width="645" />

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

<a class=java022 - Windows用Tomcat发布Java项目" class="left" height="20" src="https://img-blog.csdnimg.cn/img_convert/cf813ce07d364237bd886c6ccccc25d9.png" width="466" />

创建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

<a class=java023 1024x600 - Windows用Tomcat发布Java项目" class="left" height="386" src="https://img-blog.csdnimg.cn/img_convert/fa298fbf26900471acde57371a3e10b6.png" width="660" />

配置环境变量

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

<a class=java024 1024x581 - Windows用Tomcat发布Java项目" class="left" height="368" src="https://img-blog.csdnimg.cn/img_convert/08f0d203780f16f8093c756bd4f202f7.png" width="649" />

<a class=java025 1024x860 - Windows用Tomcat发布Java项目" class="left" height="554" src="https://img-blog.csdnimg.cn/img_convert/d714c107eb99423560b75ef2c918a6e1.png" width="659" />

<a class=java026 - Windows用Tomcat发布Java项目" class="left" height="467" src="https://img-blog.csdnimg.cn/img_convert/a860e3a81b126727fd8d57ebb1602fff.png" width="552" />

以管理员身份打开 cmd 命令行工具,切换目录:
cd C:\web\mysql-8.0.11\bin

<a class=java027 - Windows用Tomcat发布Java项目" class="left" height="143" src="https://img-blog.csdnimg.cn/img_convert/acaf1fbd41280c257504d0c927a32385.png" width="659" />

<a class=java028 - Windows用Tomcat发布Java项目" class="left" height="67" src="https://img-blog.csdnimg.cn/img_convert/4f2c7a204305f4c4e4bf3fbf8a4e7f4c.png" width="397" />

初始化数据库:
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

正常情况:

<a class=java029 - Windows用Tomcat发布Java项目" class="left" height="81" src="https://img-blog.csdnimg.cn/img_convert/cd328218d5bb69057bc393b7bc75e58b.png" width="317" />

异常情况:

<a class=java030 - Windows用Tomcat发布Java项目" class="left" height="150" src="https://img-blog.csdnimg.cn/img_convert/f483cc7c8c218d362121844ba46f1093.png" width="310" />

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

<a class=java031 - Windows用Tomcat发布Java项目" class="left" height="182" src="https://img-blog.csdnimg.cn/img_convert/06ecfaad2f03152f5eda76b4fbcedc16.png" width="628" />

登录MySQL: mysql -u root -p

<a class=java032 - Windows用Tomcat发布Java项目" class="left" height="219" src="https://img-blog.csdnimg.cn/img_convert/eb6e711c6e5b3f8d5576535a12839ce5.png" width="616" />

设置(或修改)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

<a class=java033 - Windows用Tomcat发布Java项目" class="left" height="400" src="https://img-blog.csdnimg.cn/img_convert/87ffe4d405fbbe7e34c8e9e2bea3dcbb.png" width="527" />

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

<a class=java034 - Windows用Tomcat发布Java项目" class="left" height="223" src="https://img-blog.csdnimg.cn/img_convert/deb8a81ae99ab118418147b62e2ed578.png" width="553" />

选择这个下载

<a class=java035 - Windows用Tomcat发布Java项目" class="left" height="37" src="https://img-blog.csdnimg.cn/img_convert/a3ac25f40b8a4cdde1bbf70405cd1e4a.png" width="570" />

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

我的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

<a class=java036 - Windows用Tomcat发布Java项目" class="left" height="76" src="https://img-blog.csdnimg.cn/img_convert/a803d2735ad11168d5032083b644c394.png" width="473" />

(3) 编辑变量名: Path
添加变量值:;%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;
(分号是把path的各个变量分开)

<a class=java037 - Windows用Tomcat发布Java项目" class="left" height="195" src="https://img-blog.csdnimg.cn/img_convert/f58cdba883637c9f792bfbef3847362b.png" width="480" />

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

<a class=java038 1024x386 - Windows用Tomcat发布Java项目" class="left" height="247" src="https://img-blog.csdnimg.cn/img_convert/a15a7200c73031312977fecd2937d3c8.png" width="655" />

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

<a class=java039 - Windows用Tomcat发布Java项目" class="left" height="210" src="https://img-blog.csdnimg.cn/img_convert/b364e5b37384b6f2deeb4ee5c219ef68.png" width="575" />

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

在服务里可以看到有tomcat8了

<a class=java040 - Windows用Tomcat发布Java项目" class="left" height="484" src="https://img-blog.csdnimg.cn/img_convert/be9721143f65c633263bafadd5e16abb.jpeg" width="620" />

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

<a class=java041 - Windows用Tomcat发布Java项目" class="left" height="368" src="https://img-blog.csdnimg.cn/img_convert/0b1ce77b653bf79ff7199b0839e968ef.png" width="661" />

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

<a class=java042 - Windows用Tomcat发布Java项目" class="left" height="375" src="https://img-blog.csdnimg.cn/img_convert/9b36b4e9fc78144629e32fa3e5ccf1e7.jpeg" width="659" />


四、数据迁移到服务器

1、本地数据备份SQL

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

我用的Navicat,推荐下面这个免安装的版本:
链接:https://pan.baidu.com/s/1y9flZHD9AgGfhz1pebPNyg
提取码:kkaf

<a class=java006 - Windows用Tomcat发布Java项目" class="left" height="472" src="https://img-blog.csdnimg.cn/img_convert/dac4855fa117d5118ca447dda5b3b99a.png" width="346" />

<a class=java007 - Windows用Tomcat发布Java项目" class="left" height="404" src="https://img-blog.csdnimg.cn/img_convert/ca7d6ec8318d6a440f596d67ab29d246.png" width="644" />

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

<a class=java008 - Windows用Tomcat发布Java项目" class="left" height="415" src="https://img-blog.csdnimg.cn/img_convert/585775a54f22793ec6dd95b9cbe23a41.jpeg" width="613" />


2、云数据库导入SQL

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

我在云端也有一个Navicat

<a class=java043 - Windows用Tomcat发布Java项目" class="left" height="542" src="https://img-blog.csdnimg.cn/img_convert/0d3c6fc62f296b924e48364eb22b93ee.png" width="301" />

数据已经在数据库里了

<a class=java044 - Windows用Tomcat发布Java项目" class="left" height="320" src="https://img-blog.csdnimg.cn/img_convert/c4265149c224d9e2554056eded67bbba.jpeg" width="660" />


五、部署 Java 项目

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

<a class=java045 - Windows用Tomcat发布Java项目" class="left" height="270" src="https://img-blog.csdnimg.cn/img_convert/51e7eaee3eba06f48d10fb30f9b9a026.png" width="563" />

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

<a class=java046 1024x501 - Windows用Tomcat发布Java项目" class="left" height="321" src="https://img-blog.csdnimg.cn/img_convert/b34885bfc7ceb099129d4a99dee682df.jpeg" width="656" />


六、防火墙开放端口

1、防火墙开放端口

<a class=java047 - Windows用Tomcat发布Java项目" class="left" height="444" src="https://img-blog.csdnimg.cn/img_convert/ad2aabc860380f83bb88a77e38f0f467.jpeg" width="645" />


2、安全组开放端口

<a class=java048 1024x66 - Windows用Tomcat发布Java项目" class="left" height="42" src="https://img-blog.csdnimg.cn/img_convert/e0e4191469892f56c305f9a681bff29a.png" width="648" />


七、测试发布是否成功

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

<a class=java049 1024x534 - Windows用Tomcat发布Java项目" class="left" height="341" src="https://img-blog.csdnimg.cn/img_convert/4645eae50c1201595d8132b6b818d3ec.jpeg" width="653" />

<a class=java050 - Windows用Tomcat发布Java项目" class="left" height="330" src="https://img-blog.csdnimg.cn/img_convert/9687f57a06414cf13b1754d54f02d720.jpeg" width="657" />


八、常见问题

① 连接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″:

<a class=java051 1024x157 - Windows用Tomcat发布Java项目" class="left" height="99" src="https://img-blog.csdnimg.cn/img_convert/18a948a7035e78bd533b36211b55a887.png" width="643" />


② 关于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里。

<a class=java052 - Windows用Tomcat发布Java项目" class="left" height="296" src="https://img-blog.csdnimg.cn/img_convert/6c557994bc28ef4f91322f0bc9812c85.png" width="637" />

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


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

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

步骤一:

tomcat目录下的conf文件夹下,打开server.xml文件 ;
在Connector 中添加 URIEncoding=”UTF-8″;

<a class=java053 1024x386 - Windows用Tomcat发布Java项目" class="left" height="242" src="https://img-blog.csdnimg.cn/img_convert/06105b10a944f356c1a97fd64b6b509a.png" width="642" />

步骤二:

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

<a class=java054 - Windows用Tomcat发布Java项目" class="left" height="215" src="https://img-blog.csdnimg.cn/img_convert/1b08b3aef8826bb8cae785374a7c47b7.png" width="642" />

setlocal下增加一行:

set JAVA_OPTS=-Dfile.encoding=UTF8

<a class=java055 1024x481 - Windows用Tomcat发布Java项目" class="left" height="310" src="https://img-blog.csdnimg.cn/img_convert/4b3869810c5e78fb57e43b39493b2329.png" width="661" />

步骤三:

打开注册表,找到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后,完美解决。


http://www.niftyadmin.cn/n/5334890.html

相关文章

vue2踩坑之项目:vue2+element实现前端导出

1.安装插件依赖 npm i --save xlsx0.17.0 file-saver2.0.5 2.单页面引入 前端导出插件 import FileSaver from "file-saver"; import * as XLSX from "xlsx"; //html <el-form-item><el-button type"primary" plain size"mini&quo…

解决某些软件中文字符乱码问题

例如打开某软件后&#xff1a; 是电脑本身的编码有问题&#xff0c;我是这样解决的&#xff1a;

docker容器和常用命令

1.什么是容器 容器是隔离的环境中运行的一个 进程 , 如果进程结束 , 容器就会停止. 细致: 容器的隔离环境 , 拥有自己的 ip 地址 , 系统文件 , 主机名 , 进程管理 , 相当于一个 mini的系统 2.容器 vs 虚拟机 3.Docker极速上手指南 #1.安装相关依赖. sudo yum install -y …

Django笔记(四):视图views

首 视图view处理客户端请求并生成响应数据&#xff0c;可简单认为编写接口的部分。 视图结构 from django.http import HttpResponse# Create your views here. def index(request):return HttpResponse("hello world") 上述index视图&#xff0c;会返回一个“he…

ChatGPT 如何解决 “Something went wrong. lf this issue persists ….” 错误

Something went wrong. If this issue persists please contact us through our help center at help.openai.com. ChatGPT经常用着用着就出现 “Something went wrong” 错误&#xff0c;不管是普通账号还是Plus账号&#xff0c;不管是切换到哪个节点&#xff0c;没聊两次就报…

QT-QML2048小游戏

QT-QML2048小游戏 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 import QtQuick 2.2 import QtQuick.Controls 1.1 import QtQuick.Controls.Styles 1.1 import QtQuick.Dialogs 1.1 import QtQuick.Window 2.1 import "2048.js" as MyScriptAp…

html设置背景色逐渐变透明

如果要在 HTML 中实现背景色逐渐变透明的效果&#xff0c;你可以使用 CSS 的 linear-gradient() 函数结合 RGBA 颜色值来创建线性渐变。 以下是一个示例代码&#xff0c;展示如何将背景色从上到下逐渐变为透明&#xff1a; <!DOCTYPE html> <html><head>&l…

前端构建工具对比 webpack、vite、esbuild等

人类和动物最大的区别是会使用工具&#xff0c;工具的作用就是提升我们的生产效率&#xff0c;同样&#xff0c;随着前端工程化的演进&#xff0c;伴随着一些优秀的工程化的生产效率工具&#xff0c;今天就来聊一聊&#xff0c;前端工程中的构建工具。 前端构建工具按照功能可以…