Windows用Tomcat发布Java项目

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 对于云服务器,程序员一般不会陌生,如果项目需要发布到现网,那么服务器是必不可缺的一项硬性条件,那么如何在云服务器上部署一个项目,需要做哪些配置准备,下面就由本文档为大家讲解,本篇以Tomcat服务器发布J2EE项目为例。

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

1、本地准备

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



2、sql备份

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

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

提取码:kkaf

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

服务器准备

3、准备服务器

购买一台阿里云服务器!!

4、云服务器上安装JDK、MySQL、tomcat

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

(1)新建环境变量JAVA_HOME

变量名:JAVA_HOME

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

(2)配置path

变量名:path

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

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

(3)新增CLASSPATH变量

变量名:CLASSPATH

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

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

Windows上安装MySQL

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

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

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

配置环境变量

变量名:MYSQL_HOME

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

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

cd C:\web\mysql-8.0.11\bin

初始化数据库:

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

正常情况:

异常情况:

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

登录MySQL: mysql -u root -p

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

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

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

保存修改后的密码:

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

5、安装tomcat,并发布J2EE项目

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

点击Archives

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

选择这个下载

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

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

(3) 编辑变量名: Path

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

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

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

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

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

在服务里可以看到有tomcat8了

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

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

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

我在云端也有一个Navicat

数据已经在数据库里了

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

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

6、防火墙开放70端口

7、云服务器控制台安全组开放70端口

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

9、运行成功项目之前遇到的问题

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

②关于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文件上会出现红叉],将有红叉的java文件找到,将有红×的那一行删掉,再重新导那个包就可以了。

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

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

步骤一:

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

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

步骤二:

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

setlocal下增加一行:

set JAVA_OPTS=-Dfile.encoding=UTF8

步骤三:

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

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL Java
【MySQL+java+jpa】MySQL数据返回项目的感悟
【MySQL+java+jpa】MySQL数据返回项目的感悟
43 1
|
3天前
|
Java Android开发
Eclipse 创建 Java 项目
Eclipse 创建 Java 项目
17 4
|
8天前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
本文介绍了Java持久层框架Hibernate和JPA的基本概念及其在具体项目中的应用。通过一个在线书店系统的实例,展示了如何使用@Entity注解定义实体类、通过Spring Data JPA定义仓库接口、在服务层调用方法进行数据库操作,以及使用JPQL编写自定义查询和管理事务。这些技术不仅简化了数据库操作,还显著提升了开发效率。
20 3
|
11天前
|
前端开发 Java 数据库
如何实现一个项目,小白做项目-java
本教程涵盖了从数据库到AJAX的多个知识点,并详细介绍了项目实现过程,包括静态页面分析、数据库创建、项目结构搭建、JSP转换及各层代码编写。最后,通过通用分页和优化Servlet来提升代码质量。
28 1
|
1月前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
334 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
18天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
28天前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
1月前
|
Java Apache Maven
Java/Spring项目的包开头为什么是com?
本文介绍了 Maven 项目的初始结构,并详细解释了 Java 包命名惯例中的域名反转规则。通过域名反转(如 `com.example`),可以确保包名的唯一性,避免命名冲突,提高代码的可读性和逻辑分层。文章还讨论了域名反转的好处,包括避免命名冲突、全球唯一性、提高代码可读性和逻辑分层。最后,作者提出了一个关于包名的问题,引发读者思考。
Java/Spring项目的包开头为什么是com?
|
1月前
|
运维 Java Maven
Dockerfile实践java项目
通过上述实践,我们可以看到,Dockerfile在Java项目中扮演着至关重要的角色,它不仅简化了部署流程,提高了环境一致性,还通过多阶段构建、环境变量配置、日志管理、健康检查等高级特性,进一步增强了应用的可维护性和可扩展性。掌握这些实践,将极大地提升开发和运维团队的工作效率。
46 1
|
1月前
|
算法 Java Linux
java制作海报五:java 后端整合 echarts 画出 折线图,项目放在linux上,echarts图上不显示中文,显示方框口口口
这篇文章介绍了如何在Java后端整合ECharts库来绘制折线图,并讨论了在Linux环境下ECharts图表中文显示问题。
39 1