为避免出现其它问题,建议软件版本跟作者保持一致
软件 | 版本 | 说明 |
---|---|---|
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 | 无特殊版本要求 |
本系统源码获取方式见文章末尾
本系统开发设计文档:《基于web的机票管理系统设计与实现(一)》
本系统开发设计文档:《基于web的机票管理系统设计与实现(二)》
作者用目前非常流行的 Eclipse 开发工具做演示,大家可直接在百度搜索关键词下载。
这一步也是非常简单啦,作者使用Tomcat9.0版本,建议跟作者保持一致。在百度搜索 Tomcat9.0,下载后解压到某个盘符下即可(记住解压路径,后面要用)
很重要,作者使用JDK1.8版本,也是建议初学者使用作者的版本(其它版本后面配置可能会出问题)。JDK下载和环境变量配置在百度搜索关键词有很多教程,这里不再重复。
目前作者所有毕设源码数据库都用 MySQL5.7版本,强烈建议初学者跟作者保持一致,避免出现其它错误,待运行成功后再根据需要调整数据库版本。
MySQL5.7安装教程请看作者另一篇文章:《MySQL绿色版安装与卸载教程》
数据库管理工具作者用 Navicat,并没有版本要求,自己在百度搜索,傻瓜式安装即可,也可以用其他数据库管理工具。
基于Web的机票管理系统用到项目管理工具Maven来统一Jar包管理,关于Maven的下载安装和配置教程请阅读作者的另一篇文章:《Maven安装与配置教程》,教程中对每个步骤的描述都很详细,大家根据文章操作就可以了。
本项目中使用Redis来缓存登录人的相关信息,Redis下载安装非常简单,这里不再说明,大家去百度搜索关键词Redis下载安装教程
的话有很多案例,按照教程一步步操作即可。
做完以上工作后,项目所需的基础软件就准备完成了。
1、打开安装好的Navicat(数据库管理工具)–》连接 --》MySQL
2、输入相关信息
注意:使用了上面作者提供的数据库安装方式的,密码默认为空!
3、输入以上信息后,先点击“连接测试
”看看信息是否正确,正确后点击“确定
”即可。
1、test 右击–>新建数据库
数据库名:查看“基于Web的机票预订系统
”源码包,用记事本工具打开ticket.sql
文件
下载好的源码包解压后:
字符集:utf8
排序规则:utf8_general_ci
2、双击新建的数据库–>待数据库名由灰变亮后–>右击数据库名–>运行SQL文件–>选择文件ticket.sql
-->点击开始–>关闭
注意:SQL文件在下载好的源码包中
3、刷新数据库表后即可看到导入的文件了
完成以上步骤后,sql文件已成功导入到数据库中了。
1、打开Eclipse开发工具–>Window–>Preferences
2、进行如下配置:
1、打开之前安装好的eclipse开发工具,file --> import -->Maven -->Existing Maven Projects–>Next
注:这里一定要选择Maven
2、选择下载好的flyTicket-parent
,点击Finish
即可
3、导入后,如下图所示
点击Finish
导入项目时在开发工具右下角有进度条提示,此处可能时间较长,请耐心等待。待进度条加载完成后项目结构如下图:
观察Maven本地仓库,查看项目依赖下载是否正常,即检查本地仓库路径下是否有类似下图中的文件夹生成。
如果没有上图中的文件夹生成的话需要检查Maven配置是否正确、刷新项目
Window–>Preferences–>Maven–>User Settings
鼠标放到项目名称右击–>Maven–>Update Project
注意:以下项目都要修改JDK版本
1、项目名称右击–>Build Path–>Configure Build Path
2、点击JRE System Library–>Edit–>Installed JRE–>Add
此步很重要。本项目包括用户所使用的前台(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.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.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
配置完后如下图所示:
修改前台(flyTicket-portal-web)和后台(flyTicket-manage-web)数据库配置,具体操作步骤如下:
1、修改前台(flyTicket-portal-web)数据库配置
2、修改后台(flyTicket-manage-web)数据库配置
前台项目(flyTicket-portal-web)中用到了支付宝沙箱支付环境,需要修改flyTicket-portal-web/src/main/java/com/alipay/config/AlipayConfig.java
,关于沙箱环境的介绍和详细配置步骤请阅读《支付宝支付–沙箱支付教程+案例 | PC端网站支付(超级详细)》。
注意:运行前记得开启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)登录界面:
前台普通用户名密码如下图:
成功登录后:
注意:运行前记得开启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/
后台管理员用户名密码如下图:
成功登录后:
项目导入后出现中文乱码问题,如下图所示:
解决方法:改变整个Eclipse工作空间的编码格式
在Window–》Preferences–》General–》Workspace下,面板Text file encoding 选择UTF-8格式(或者从GBK改成 UTF-8)
改变Eclipse工作空间的编码格式后:
导入后项目名称前有可能出现红叉叉,这时候不要着急运行项目(运行会报错),根据以下步骤解决。
特别说明:如果只是在项目名称上有红叉叉,具体的文件上没有红叉叉时不影响项目运行(不用搭理)
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)”去百度
1、右键项目—>Propertis
2、Project Facets—>将Dynamic Web Module打勾
也可以搜索关键词“Eclipse中Tomcat的add and remove找不到项目”去百度寻求解决方法。
1、报错原因
该项目下所引用的 jar 包没有同步到 lib 目录下
2、解决办法
选择所运行的项目>右击Build Path>Configure build path>Deployment Assembly>add>选择Java Build Path Entries>选择Maven Dependencies
六月 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是否成功开启
HTTP状态码 404: 官方解释是服务器找不到请求的网页。本项目中出现404时首先检查访问地址是否正确,其次检查服务是否正常启动(Tomcat)。
HTTP状态码 500: 官方解释是服务器内部错误,服务器遇到错误,无法完成请求。本项目中出现500时表明前端请求已经到达后端服务器,只是在逻辑处理中遇到错误,具体错误原因需要我们查看Eclipse控制台(Console)。特别注意:在本项目中输入用户名和密码后点击登录时出现500状态码,一般是数据库连接失败,MySQL数据库版本高于5.7时会出现上述情况(建议使用MySQL5.7.x)。
付款时报错org.apache.jasper.JasperException: 在 [46] 行处理 [/pay/alipay.trade.page.pay.jsp] 时发生异常
是由于没有正确配置或未配置支付宝沙箱环境,配置教程请看《支付宝支付–沙箱支付教程+案例 | PC端网站支付(超级详细)》。
我们在后台管理端新建广告信息后,前台首页轮播图无法正常显示,如下图:
1、原因分析
这是由于后台管理端上传广告图片时将图片保存到了本地(默认C:\flyTicket
),导致前台轮播图img标签无法正常加载图片路径导致的。
2、解决办法
配置tomcat项目虚拟路径
双击打开 Apache Tomcat v9.0(8081) at local
点击Modules–>点击AddExternal Web Module–>填写真实路径和虚拟路径–>点击OK–>保存–>关闭Apache Tomcat v9.0(8081) at local
–>重启服务
以上就是本期的所有内容,感谢你的阅读。获取本系统源码请微信搜索关注下方名片,回复关键词“基于web的机票管理系统
”或者“机票管理系统
”自行下载。关键词一定要输完整、输对哦!!