将web项目部署到云服务器

部署步骤

第一步 打包

     在idea使用maven将web项目打成 war包,这步不会自行百度

第二步 部署

    在部署前需要自己在阿里云或者其他云,买一个云服务器,记得把相应的端口打开,web服务需要打开 8080(tomcat),3306(mysql),其他的端口自动打开了。

    之后使用xshell连接到开的服务器,在服务器上安装相应软件,jdk,mysql,tomcat,然后将war包放到tomcat的webapps目录下即可。

第三步 遇到的问题

大致步骤就是按照上述两步即可,有些小问题在此记录一下。

1 项目端

    因为在Idea上能正常运行,所以没怎么在意,直接将项目部署到服务器,但是访问的时候发现找不到对应的资源,404即找不到资源路径。
最后才发现是在项目里面使用的绝对路径,导致部署到服务器出错,不要使用绝对路径,需要使用request.getContextPath() ,request.getServletPath()等来动态获取项目的路径。

     但这里也碰到一个问题,在controller端,使用request获取到对应的动态地址,然后要将结果传到jsp端,在jsp一般页面其实不用传地址,他可以自己使用相应的函数来获取,但是我有个按钮使用的ajax,即在jsp里面写函数,在这个函数里面不能使用相应函数动态获取地址,所以在controller获取地址将其保存在requestScope中,然后可以在ajax函数中获取地址,记得使用""将${requestscope.page.path}括起来,不然获取地址的时候会在最后多一个}符号。

2 tomcat 端

    上述修改完,部署到本地tomcat里面进行测试,没有任何修改,原来忘记清缓存了,将项目部署过来之后,页面连接报错,查看tomcat端的日志,看看报的什么错。

    第一个错是项目使用jdk8编译的,服务器端安装的jdk7;

    第二个就是tomcat版本较低,不支持项目里的某些jar包;

    第三个错在连接的时候,没有报错,而是一直转圈访问,这应该不是项目地址出错,查看tomcat日志,发现一直在重连数据库,Public Key Retrieval is not allowed是mysql8.0之后的,需要在连接中加allowPublicKeyRetrieval=true。

3 mysql

    上述测试成功,就把war包部署到云服务器,然后需要自己下载mysql,tomcat,jdk。

    我使用的tar包安装(也可以使用源码安装,centos的rpm包安装),安装完成后,修改mysql配置文件,自己最好网上搜一下各个参数含义,这样知道报错的意思,参数配置切记不能有空格

总结

    在部署的时候,遇到错误,需要查看相应的日志信息,这样才能有方向的进行修改,而不是想到什么试什么

猜你喜欢

转载自blog.csdn.net/weixin_43849906/article/details/115673823