@
目录- 1、前期必备
- 2、将SQL文件导入到数据库
- 3、Eclipse配置Maven环境
- 4、用Eclipse导入并运行程序
- 5、常见问题及解决方式
- 5.1、项目导入后中文乱码问题
- 5.2、导入后项目名称前出现红叉叉
- 5.3、Eclipse中Tomcat的add and remove找不到项目
- 5.4、项目运行时报错:配置应用程序监听器[org.springframework.web.context.ContextLoaderListener]错误
- 5.5、Redis报错java.net.SocketTimeoutException: connect timed out
- 5.6、运行项目时HTTP状态码出现 404、500
- 5.7、支付时出现org.apache.jasper.JasperException: 在 [46] 行处理 [/pay/alipay.trade.page.pay.jsp] 时发生异常
- 5.8、后台管理端新建广告后前台首页轮播图无法正常显示
- 6、获取源代码
1、前期必备
1.1、所需软件版本说明
为避免出现其它问题,建议软件版本跟作者保持一致
软件 | 版本 | 说明 |
---|---|---|
Eclipse | 2018-09 | 开发工具版本无特殊要求 |
Tomcat | 9.0 | 推荐使用Tomcat9.0 |
Jdk | 1.8 | 推荐使用JDK1.8 |
MySQL | 5.7.26 | 强烈推荐使用MySQL5.7.x,使用高版本(如:MySQL8.0.x )会导致数据库连接失败 |
Maven | 3.6.3 | 无特殊版本要求 |
Redis | 64.3.0.503 | 无特殊版本要求 |
1.2、下载源码
获取源码:微信搜索公众号【IT学长】,回复“机票管理系统”
本系统开发设计文档:《基于web的机票管理系统设计与实现(一)》
本系统开发设计文档:《基于web的机票管理系统设计与实现(二)》
1.3、下载开发工具
作者用目前非常流行的 Eclipse 开发工具做演示,大家可直接在百度搜索关键词下载。
1.4、下载Tomcat
这一步也是非常简单啦,作者使用Tomcat9.0版本,建议跟作者保持一致。在百度搜索 Tomcat9.0,下载后解压到某个盘符下即可(记住解压路径,后面要用)
1.5、下载JDK并配置环境变量
很重要,作者使用JDK1.8版本,也是建议初学者使用作者的版本(其它版本后面配置可能会出问题)。JDK下载和环境变量配置在百度搜索关键词有很多教程,这里不再重复。
1.6、安装数据库和数据库管理工具
目前作者所有毕设源码数据库都用 MySQL5.7版本,强烈建议初学者跟作者保持一致,避免出现其它错误,待运行成功后再根据需要调整数据库版本。
MySQL5.7安装教程请看作者另一篇文章:《MySQL绿色版安装与卸载教程》
数据库管理工具作者用 Navicat,并没有版本要求,自己在百度搜索,傻瓜式安装即可,也可以用其他数据库管理工具。
1.7、安装配置Maven
基于Web的机票管理系统用到项目管理工具Maven来统一Jar包管理,关于Maven的下载安装和配置教程请阅读作者的另一篇文章:《Maven安装与配置教程》,教程中对每个步骤的描述都很详细,大家根据文章操作就可以了。
1.8、下载安装Redis
本项目中使用Redis来缓存登录人的相关信息,Redis下载安装非常简单,这里不再说明,大家去百度搜索关键词Redis下载安装教程
的话有很多案例,按照教程一步步操作即可。
做完以上工作后,项目所需的基础软件就准备完成了。
2、将SQL文件导入到数据库
2.1、新建MySQL连接
1、打开安装好的Navicat(数据库管理工具)--》连接 --》MySQL
2、输入相关信息
- 连接名:自定义(随便起)
- 主机:使用默认localhost或127.0.0.1
- 端口:使用默认3306
- 用户名:填写自己数据库的用户名
- 密码:填写自己数据库的密码
注意:使用了上面作者提供的数据库安装方式的,密码默认为空!
3、输入以上信息后,先点击“连接测试
”看看信息是否正确,正确后点击“确定
”即可。
2.2、新建数据库并导入SQL
1、test 右击-->新建数据库
数据库名:查看“基于Web的机票预订系统
”源码包,用记事本工具打开ticket.sql
文件
下载好的源码包解压后:
字符集:utf8
排序规则:utf8_general_ci
2、双击新建的数据库-->待数据库名由灰变亮后-->右击数据库名-->运行SQL文件-->选择文件ticket.sql
-->点击开始-->关闭
注意:SQL文件在下载好的源码包中
3、刷新数据库表后即可看到导入的文件了
完成以上步骤后,sql文件已成功导入到数据库中了。
3、Eclipse配置Maven环境
1、打开Eclipse开发工具-->Window-->Preferences
2、进行如下配置:
- 搜索框内输入:Maven
- 点击:User Settings
- 选择Maven的setting.xml文件
- 检查本地仓库地址是否正确
4、用Eclipse导入并运行程序
4.1、Eclipse导入项目
1、打开之前安装好的eclipse开发工具,file --> import -->Maven -->Existing Maven Projects-->Next
注:这里一定要选择Maven
2、选择下载好的flyTicket-parent
,点击Finish
即可
3、导入后,如下图所示
点击Finish
导入项目时在开发工具右下角有进度条提示,此处可能时间较长,请耐心等待。待进度条加载完成后项目结构如下图:
4.2、检查Maven配置是否正常
观察Maven本地仓库,查看项目依赖下载是否正常,即检查本地仓库路径下是否有类似下图中的文件夹生成。
如果没有上图中的文件夹生成的话需要检查Maven配置是否正确、刷新项目
Window-->Preferences-->Maven-->User Settings
鼠标放到项目名称右击-->Maven-->Update Project
4.3、检查并修改JDK版本
注意:以下项目都要修改JDK版本
- flyTicket-dao
- flyTicket-manage-service
- flyTicket-manage-web
- flyTicket-pojo
- flyTicket-portal-service
- flyTicket-portal-web
1、项目名称右击-->Build Path-->Configure Build Path
2、点击JRE System Library-->Edit-->Installed JRE-->Add
4.4、检查并修改Tomcat端口
此步很重要。本项目包括用户所使用的前台(flyTicket-portal-web)和管理员所使用的后台(flyTicket-manage-web)两个服务,因此也需要两个Tomcat服务器(端口不一样)。
1、将上述1.4
步骤中下载好的Tomcat复制一份并重命名(重命名是为了方便区分端口),如下图:
2、修改apache-tomcat-9.0.30(8080)
文件夹下conf/server.xml
文件并保存
注意:需要修改下图中的两处
3、修改apache-tomcat-9.0.30(8081)
文件夹下conf/server.xml
文件并保存
注意:需要修改下图中的两处
4.5、配置Server运行环境
同步骤4.4
,需要配置前台(flyTicket-portal-web)和后台(flyTicket-manage-web)两个运行环境
1、Window-->Preferences
2、搜索框输入server-->点击 Runtime Environments-->点击Add-->选择 Apache Tomcat v9.0-->点击 Next
3、重命名Name为Apache Tomcat v9.0(8080)-->点击Browse-->选择8080端口的Tomcat
注意:选择端口为8080的Tomcat
4、重复2-3
步骤
注意:重命名Name为Apache Tomcat v9.0(8081)
注意:选择端口为8081的Tomcat
5、8080和8081端口的运行环境配置完成后如下图所示:
4.6、配置Server Runtime
通过步骤4.5
配置好运行环境后,需要将两个运行环境分别添加到前台项目(flyTicket-portal-web)和后台项目(flyTicket-manage-web)中。
1、将8081环境添加到前台系统中
前台项目(flyTicket-portal-web)右击-->Build Path-->Configure Build Path-->Libraries-->Add Library-->Server Runtime-->Next-->Apache Tomcat v9.0(8081)-->Finish-->Apply and Close
配置完后如下图所示:
2、将8080环境添加到后台系统中
后台项目(flyTicket-manage-web)右击-->Build Path-->Configure Build Path-->Libraries-->Add Library-->Server Runtime-->Next-->Apache Tomcat v9.0(8080)-->Finish-->Apply and Close
配置完后如下图所示:
4.7、修改数据库相关配置
修改前台(flyTicket-portal-web)和后台(flyTicket-manage-web)数据库配置,具体操作步骤如下:
1、修改前台(flyTicket-portal-web)数据库配置
2、修改后台(flyTicket-manage-web)数据库配置
4.8、给前台项目(flyTicket-portal-web)配置沙箱支付
前台项目(flyTicket-portal-web)中用到了支付宝沙箱支付环境,需要修改flyTicket-portal-web/src/main/java/com/alipay/config/AlipayConfig.java
,关于沙箱环境的介绍和详细配置步骤请阅读《支付宝支付--沙箱支付教程+案例 | PC端网站支付(超级详细)》。
4.9、运行前台(flyTicket-portal-web)项目
注意:运行前记得开启Redis,不然在用户登录时会报错java.net.SocketTimeoutException: connect timed out
1、Servers-->New-->Server
2、点击Tomcat v9.0 Server-->重命名Server Name为
Apache Tomcat v9.0(8081) at local-->选择8081端口的运行环境-->Next
3、将flyTicket-portal-web从左边加到右边-->点击Finish
4、Apache Tomcat v9.0(8081) at localhost
右击-->Start
5、打开浏览器输入http://localhost:8081/flyTicket-portal-web/
前台(flyTicket-portal-web)登录界面:
前台普通用户名密码如下图:
成功登录后:
4.10、运行后台(flyTicket-manage-web)项目
注意:运行前记得开启Redis,不然在用户登录时会报错java.net.SocketTimeoutException: connect timed out
1、Servers-->New-->Server
2、点击Tomcat v9.0 Server-->重命名Server Name为
Apache Tomcat v9.0(8080) at local-->选择8080端口的运行环境-->Next
3、将flyTicket-manage-web从左边加到右边-->点击Finish
4、Apache Tomcat v9.0(8080) at localhost
右击-->Start
5、打开浏览器输入http://localhost:8080/flyTicket-manage-web/
后台管理员用户名密码如下图:
成功登录后:
5、常见问题及解决方式
5.1、项目导入后中文乱码问题
项目导入后出现中文乱码问题,如下图所示:
解决方法:改变整个Eclipse工作空间的编码格式
在Window--》Preferences--》General--》Workspace下,面板Text file encoding 选择UTF-8格式(或者从GBK改成 UTF-8)
改变Eclipse工作空间的编码格式后:
5.2、导入后项目名称前出现红叉叉
导入后项目名称前有可能出现红叉叉,这时候不要着急运行项目(运行会报错),根据以下步骤解决。
特别说明:如果只是在项目名称上有红叉叉,具体的文件上没有红叉叉时不影响项目运行(不用搭理)
1、鼠标放到项目名称上右击 --》Build Path -->Configure Build Path
2、点击 Libraries -->检查报错项
上图中,我们看到 JRE System Library[Java](unbound)报错,这是因为未找到 JDK,鼠标放到报错项上 --》点击右侧的Edit按钮 --》选择安装好的JDK(JRE)环境就好了
未选择JDK(JRE)之前如下图:
选择JDK(JRE)之后如下图:
注意:主要检查如下两项,报错时通常出现:XXXunbound
- Apache Tomcat v9.0[Apache Tomcat v9.0](unbound)
- JRE System Library[jdk](unbound)
若出现以上报错时,直接复制“Apache Tomcat v9.0[Apache Tomcat v9.0](unbound)”去百度。
同样的方式复制“JRE System Library[jdk](unbound)”去百度
5.3、Eclipse中Tomcat的add and remove找不到项目
1、右键项目--->Propertis
2、Project Facets--->将Dynamic Web Module打勾
也可以搜索关键词“Eclipse中Tomcat的add and remove找不到项目”去百度寻求解决方法。
5.4、项目运行时报错:配置应用程序监听器[org.springframework.web.context.ContextLoaderListener]错误
1、报错原因
该项目下所引用的 jar 包没有同步到 lib 目录下
2、解决办法
选择所运行的项目>右击Build Path>Configure build path>Deployment Assembly>add>选择Java Build Path Entries>选择Maven Dependencies
5.5、Redis报错java.net.SocketTimeoutException: connect timed out
六月 11, 2022 11:32:23 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [SpringMVC] in context with path [/flyTicket-manage-web] threw exception [Request processing failed; nested exception is org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool] with root cause
java.net.SocketTimeoutException: connect timed out
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
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.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at redis.clients.jedis.Connection.connect(Connection.java:158)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:82)
at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1641)
at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:85)
at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:861)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
1、报错原因
出现java.net.SocketTimeoutException: connect timed out
时说明Redis连接失败
2、解决办法
检查Redis是否成功开启
5.6、运行项目时HTTP状态码出现 404、500
HTTP状态码 404: 官方解释是服务器找不到请求的网页。本项目中出现404时首先检查访问地址是否正确,其次检查服务是否正常启动(Tomcat)。
HTTP状态码 500: 官方解释是服务器内部错误,服务器遇到错误,无法完成请求。本项目中出现500时表明前端请求已经到达后端服务器,只是在逻辑处理中遇到错误,具体错误原因需要我们查看Eclipse控制台(Console)。特别注意:在本项目中输入用户名和密码后点击登录时出现500状态码,一般是数据库连接失败,MySQL数据库版本高于5.7时会出现上述情况(建议使用MySQL5.7.x)。
5.7、支付时出现org.apache.jasper.JasperException: 在 [46] 行处理 [/pay/alipay.trade.page.pay.jsp] 时发生异常
付款时报错org.apache.jasper.JasperException: 在 [46] 行处理 [/pay/alipay.trade.page.pay.jsp] 时发生异常
是由于没有正确配置或未配置支付宝沙箱环境,配置教程请看《支付宝支付--沙箱支付教程+案例 | PC端网站支付(超级详细)》。
5.8、后台管理端新建广告后前台首页轮播图无法正常显示
我们在后台管理端新建广告信息后,前台首页轮播图无法正常显示,如下图:
1、原因分析
这是由于后台管理端上传广告图片时将图片保存到了本地(默认C:\flyTicket
),导致前台轮播图img标签无法正常加载图片路径导致的。
2、解决办法
配置tomcat项目虚拟路径
- 虚拟路径 /contentpic
- 真实路径 C:\flyTicket
双击打开 Apache Tomcat v9.0(8081) at local
点击Modules-->点击AddExternal Web Module-->填写真实路径和虚拟路径-->点击OK-->保存-->关闭Apache Tomcat v9.0(8081) at local
-->重启服务
6、获取源代码
以上就是本期的所有内容,感谢你的阅读。获取本系统源码请在公众号【IT学长】
,回复关键词“基于web的机票管理系统
”或者“机票管理系统
”自行下载。关键词一定要输完整、输对哦!!