Java进阶-Tomcat发布JavaWeb项目

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

java000 - Windows用Tomcat发布Java项目


一、打包 Java 项目

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

java001 - Windows用Tomcat发布Java项目

java002 - Windows用Tomcat发布Java项目

java003 - Windows用Tomcat发布Java项目

java004 - Windows用Tomcat发布Java项目

java005 - Windows用Tomcat发布Java项目


 二、准备云服务器

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

java009 1024x670 - Windows用Tomcat发布Java项目

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

java010 1024x442 - Windows用Tomcat发布Java项目

下载RDP文件

java011 1024x721 - Windows用Tomcat发布Java项目

java012 - Windows用Tomcat发布Java项目

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

java013 1024x289 - Windows用Tomcat发布Java项目

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

java014 1024x561 - Windows用Tomcat发布Java项目


三、环境云服务器配置

1、安装 JDK

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

java015 - Windows用Tomcat发布Java项目

(1)新建环境变量JAVA_HOME

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

java016 - Windows用Tomcat发布Java项目

(2)配置path

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

java017 - Windows用Tomcat发布Java项目

(3)新增CLASSPATH变量

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

java018 - Windows用Tomcat发布Java项目

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

java019 - Windows用Tomcat发布Java项目


2、安装 MySQL

Windows上安装MySQL

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

java020 1024x719 - Windows用Tomcat发布Java项目

java021 1024x739 - Windows用Tomcat发布Java项目

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

java022 - Windows用Tomcat发布Java项目

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

java023 1024x600 - Windows用Tomcat发布Java项目

配置环境变量

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

java024 1024x581 - Windows用Tomcat发布Java项目

java025 1024x860 - Windows用Tomcat发布Java项目

java026 - Windows用Tomcat发布Java项目

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

java027 - Windows用Tomcat发布Java项目

java028 - Windows用Tomcat发布Java项目

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

正常情况:

java029 - Windows用Tomcat发布Java项目

异常情况:

java030 - Windows用Tomcat发布Java项目

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

java031 - Windows用Tomcat发布Java项目

登录MySQL: mysql -u root -p

java032 - Windows用Tomcat发布Java项目

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

java033 - Windows用Tomcat发布Java项目

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

java034 - Windows用Tomcat发布Java项目

选择这个下载

java035 - Windows用Tomcat发布Java项目

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

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

java036 - Windows用Tomcat发布Java项目

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

java037 - Windows用Tomcat发布Java项目

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

java038 1024x386 - Windows用Tomcat发布Java项目

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

java039 - Windows用Tomcat发布Java项目

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

在服务里可以看到有tomcat8了

java040 - Windows用Tomcat发布Java项目

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

java041 - Windows用Tomcat发布Java项目

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

java042 - Windows用Tomcat发布Java项目


四、数据迁移到服务器

1、本地数据备份SQL

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

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

java006 - Windows用Tomcat发布Java项目

java007 - Windows用Tomcat发布Java项目

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

java008 - Windows用Tomcat发布Java项目


2、云数据库导入SQL

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

我在云端也有一个Navicat

java043 - Windows用Tomcat发布Java项目

数据已经在数据库里了

java044 - Windows用Tomcat发布Java项目


五、部署 Java 项目

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

java045 - Windows用Tomcat发布Java项目

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

java046 1024x501 - Windows用Tomcat发布Java项目


六、防火墙开放端口

1、防火墙开放端口

java047 - Windows用Tomcat发布Java项目


2、安全组开放端口

java048 1024x66 - Windows用Tomcat发布Java项目


七、测试发布是否成功

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

java049 1024x534 - Windows用Tomcat发布Java项目

java050 - Windows用Tomcat发布Java项目


八、常见问题

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

java051 1024x157 - Windows用Tomcat发布Java项目


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

java052 - Windows用Tomcat发布Java项目

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


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

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

步骤一:

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

java053 1024x386 - Windows用Tomcat发布Java项目

步骤二:

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

java054 - Windows用Tomcat发布Java项目

setlocal下增加一行:

set JAVA_OPTS=-Dfile.encoding=UTF8

java055 1024x481 - Windows用Tomcat发布Java项目

步骤三:

打开注册表,找到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.mfbz.cn/a/333647.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows vscode jsoncpp cmake c++ 构建项目

jsoncpp的编译和使用推荐文章:jsoncpp的编译和使用 | 爱编程的大丙 (subingwen.cn)https://www.subingwen.cn/cpp/jsoncpp/从这个链接下载jsoncpp-master:https://github.com/open-source-parsers/jsoncpp 可以把这个文件夹名字改成jsoncpp,…

街机模拟游戏逆向工程(HACKROM)教程:[10]68K汇编add指令

我们之前已经介绍了move指令,从本章开始,我们会一步步介绍更多的M68K指令。 简介: add :加法指令 该指令的作用是[源操作数]加[目的操作数],结果传递至[目的操作数],[源操作数]保持不变。 例子:…

MySQL复合查询 内外连接

目录 前言: 多表查询: 显示部门号为10的部门名,员工名和工资 : 显示各个员工的姓名,工资,及工资级别: 自连接 显示员工FORD的上级领导的编号和姓名(mgr是员工领导的编号) 子查询 单行子查询&#…

汽车微电机行业研究:预计2029年将达到188亿美元

微电机行业是技术密集型行业,其起源于欧洲的德国、瑞士等国家,发展于日本。随着改革开放,中国作为发展中国家,承接了德国、日本等发达国家的汽车微电机产业转移,技术扩散逐步向我国转移。 微特电机广泛应用于信息处理设…

[Python] 如何通过ctypes库来调用C++ 动态库 DLL?

ctypes库介绍 ctypes是Python的一个外部库,它提供了一种灵活的方式来调用C语言的动态链接库(DLL)或共享库(SO)。通过ctypes,我们可以在Python中直接调用C语言编写的函数和变量,从而实现跨语言的互操作。 ctypes 它提供了与 C 兼容的数据类型,并允许调用 DLL 或共享库中的…

数学建模美赛资料(赛题+获奖论文更新)

数学建模美赛历年真题可以帮助我们了解比赛的出题思路,对建模比赛有一个大致的了解。 在备赛过程中,通过往年真题,我们可以了解考试的范围和重点,做到心中有数,可以有的放矢。通过真题,我们可以感受到各个…

Java 方法(方法的调用机制、方法的传参机制)

方法 方法就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。 当需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。 修饰符 返回值类型 方法名 (参数列…

CC工具箱使用指南:【计算面积】

一、简介 在Arcgis中,如果要计算面要素的面积,有几种方法。 1、gdb数据会自带一个shape_area字段,这就是面的平面面积,单位是平方米: 2、在双精度字段上右键单击,在弹出的菜单中点击【计算几何】&#xf…

制造业企业数字化转型难点剖析及解决之法

导语 全球正在由工业经济向数字经济转型过渡,制造业正在且并将长期处于数字化转型发展阶段,并沿着数字化、网络化、智能化阶段不断跃升。但如何找准数字化转型的切入点,以低耗能、低成本、高效率的方式加快制造业转型升级的步伐,仍…

普兰资产(PLAN B KRYPTO ASSETS):Schutz AI 公链引领数字资产新时代

比特B ETF是金融技术革命的起始 普兰资产(PLAN B KRYPTO ASSETS)执行长Jonah Fischer指出,比特B ETF 仅是迈向金融领域技术革命的首个阶段。他认为比特B现货 ETF 提供了投资者接触年轻且具有风险性的资产的途径,但他强调区块链技术…

Linux自动化构建工具——make和Makefile使用详解

一、初步认识make和Makefile 我们首先需要知道的是,make是一个命令,Makefile是一个文件,Makefile中包含了依赖关系和依赖方法。 从上面的文件以及指令中我们可以看到,我们可以在Makefile文件中写入依赖关系以及对应的依赖方法&…

2024执业医师考试报名流程及上传照片要求详解

2024年执业医师和助理医师考试的报名工作将于1月22日正式启动,报名截止日期为2月4日。建议考生尽早报名,以避免在报名截止日期临近时出现拥挤情况。您可根据本文介绍,提前准备好报名所需资料、证件照电子版和相关证明材料,并了解报…

【我与Java的成长记】之多态,重载与重写详解

系列文章目录 能看懂文字就能明白系列 C语言笔记传送门 Java笔记传送门 🌟 个人主页:古德猫宁- 🌈 信念如阳光,照亮前行的每一步 文章目录 系列文章目录🌈 *信念如阳光,照亮前行的每一步* 前言一、多态的概…

米贸搜|Facebook新手请查收!如何在FB上定位到B类受众?

一、确定目标受众和营销目标 在利用Facebook进行获客之前,B2B企业需要首先明确目标受众和营销目标。目标受众是指潜在的客户或合作伙伴,而营销目标可能是增加销量、提高品牌知名度、获取客户线索等。 Facebook的受众定位可以分成三大类:人口…

Netty通信中的粘包半包问题(五)

这期我们来分析下消息头消息体的这种方式来实现完美的解决方案,当然这也是最复杂的一种实现,因为在大多数场景中,性能和复杂度始终不能兼得。代码中使用了MessagePack的第三方序列化,因为我们要传输的实体类对象在客户端和服务端之…

从matlab的fig图像文件中提取数据

这里用的是openfig()函数打开的fig文件 →→→【matlab 中 fig 数据提取】 很简洁 →→→【MATLAB提取 .fig 文件中的数据】 这个给出了包含多个曲线的情况 →→→【提取matlab fig文件里的数据和legend】 chatgpt给出的方法 打开fig文件并保存数据 我的…

Git 基本命令与操作流

记录 Git 中的基本命令和创建仓库、提交文件、删除文件等方面的操作 Git 基本命令 git status:查看状态 nothing to commit, working directory clean:所有已跟踪文件在上次提交后都未被更改过,或者说当前目录下没有出现任何处于未跟踪状态…

Java 类与对象(对象的分配机制、对象的创建过程、匿名对象)

面向对象 面向对象编程(Object-Oriented Programming 简称 OOP)是一种程序设计思想和编码架构。 Java 是完全面向对象的, 必须熟悉 OOP 才能够编写 Java 程序。 面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能…

基于springboot+vue的蜗牛兼职网的设计与实现系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

力扣每日一练(24-1-18)

经验一:不要把问题想复杂 Python: min_price float(inf)max_profit 0for price in prices:min_price min(min_price, price)max_profit max(max_profit, price - min_price)return max_profit C#: public int MaxProfit(int[] prices) {i…