第一个问题:就是静态文件(xml、properties等配置文件)没有被打包到war包里面,解决方案。
https://blog.csdn.net/sinat_38301574/article/details/80465693
第二个问题:一直以为将war包解压在webapps下,导致部署上去访问总是出现404找不到资源,但其实是解压在root目录下。
- window 运行 tomcat 会自动解压war到webapps下,也会解压到root目录下。
- linux 运行 tomcat 会自动解压war到webapps下,但是不会解压到root目录下,需要手动将解压后的项目war包里面文件放到ROOT文件夹下,不是把解压的war文件放进去,要裸露。
- 不用将解压后的war包项目文件放到ROOT文件,更改tomcat中的conf文件夹下的server.xml文件。更改如下:在文件最下面的host标签中最后面新加我注释的这行,
其中docBase是你webapps下的解压项目路径,就是写死项目自动解压时的解压路径。
第三个问题:部署到阿里linux服务器,数据库连接不能使用localhost,要用linux的内网ip。
第四个问题:记得引入的jar包的本地路径和线上环境路径不一致的问题。
第五个问题:
1、想直接使用根路径访问接口,就把项目部署到root下。
2、想要前缀名,就部署到webapps下,并且在server.xml文件配置,如下遇到的问题
我在tomcat的root目录下部署了一个web项目A,然后访问路径为 http://127.0.0.1:80,可以正常访问。
后来我又在这个tomcat的webapps下部署了一个项目B,原本访问路径应该为 http://127.0.0.1:80/B ,但是当我这样访问时,该请求被A项目当成http请求拦截,导致A项目给我返回404错误,然后我就请求不到B项目了。
可以在server.xml里加入Context配置可以解决,例如:
<Context path="/B" reloadable="true" docBase="B"></Context>