24SpringCloud黑马商城部署Java应用后浏览器访问数据库不显示数据的解决办法
目录
一、前言
二、完整解决流程
一、前言
在学习24黑马SpringCloud课程中,学习到部署Java应用时,我跟视频一样访问如下的路径http://192.168.100.128:8080/search/list?pageNo=1&pageSize=5(ip地址改成自己的)
视频中可见老师的浏览器会显示数据库的数据,但是我的浏览器只有500状态码和服务器错误的显示。本博客只是记录我解决这个问题的过程,这个问题可能会由多个问题导致,但是首先说明前面的本地目录挂载和容器网络部分我是一直跟着老师走的,所以这部分我没有出现问题也无法在这给出解决方法(大家可以自行检查本地目录挂载之后虚拟机data目录下有没有hmall文件夹,还有容器网络确认是创建了,同时mysql和部署的hmall在同一个网络下)
而我个人出现的问题是由于我在创建docker的mysql容器时为了防止出现端口冲突,我自己把3306:3306的映射改成了3307:3306,一直都没有出现什么问题,但是在idea的application.yaml文件我也自以为是对的就把url地址的3306改成了3307,然后打包。但实际上由于项目容器和mysql容器在同一个docker网络时可以直接通信,无需依赖端口映射(如果你和我一样是这样可以参考这篇博客)
所以一步错,步步错,下面将演示我是如何一步步重新创建项目容器并成功查看到数据的
二、完整解决流程
先用docker ps查看发现hm、mysql、nginx三个容器都在运行。然后执行docker stop hm停止hm容器,再执行docker rm hm删除hm容器。此时执行docker ps和docker ps -a都看不见hm就表示hm这个容器已经删除了
下一步就是删除hmall的镜像,可以先通过docker images查看一下
然后执行docker rmi hmall删除hmall的镜像,然后可以通过docker images查一下确定hmall镜像已经被删除
下一步是将root目录下的hm-service删除掉,注意Dockerfile没必要删留着即可
删除掉之后回到idea打开application.yaml,把之前错改成3307的地方改回3306
修改了之后记得先clean,看到之前的target消失之后再点击package打包
重新打包之后,把新的hm-service的jar重新上传到root目录下(这里没截图,自己做了就行)
按照之前部署的步骤来做,先执行docker build -t hmall .(不要忘记最后有个点),出现蓝色的字体就可以了
执行docker images查看到hmall又出现就可以了
执行docker run -d --name hm -p 8080:8080 --network heima hmall创建并运行hm容器并且加入heima网络当中。创建完之后通过执行docker ps可以查询到hm
执行docker logs hm看到日志里面出现spring和mybatisplus的图标就知道成功启动了
打开浏览器,访问http://192.168.100.128:8080/search/list?pageNo=1&pageSize=5(前面的ip地址改成自己的),然后就会发现可以查看到数据了