参考:Mac系统安装和配置tomcat步骤详解https://blog.csdn.net/feng2qing/article/details/60968548
关键词:
前端vue
后端java
服务器tomcat
开发环境mac OX
打包工具maven
解决bug:vue项目导入到后台,本地启动的时候没有差错,部署到tomcat的时候,能够访问到主页,但是页面空白(原因主页jsp页面无法定位到vue产生的其他jsp文件)
1、安装tomcat服务器:
前提安装好Jdk
tomcat官网下载tomcat
下载tar.gz格式:
具体参考https://blog.csdn.net/feng2qing/article/details/60968548
顺便修改默认端口号:
用vim打开tomcat目录下的conf目录下的server.xml文件:
用搜索的办法找到所有的8080端口,并更改到你想要的端口号即可。注意:一定要更改你所能找到的所有的8080端口,当然注释除外呵。改完后,重启tomcat。比如这里修改为9188
2、vue项目打包到后端项目
vue项目命令行下运行:
npm run build
把前端代码static文件夹和index.html文件copy到后端代码的webAPP目录下:
同时配置后端的static目录项:
完整步骤,参考:https://blog.csdn.net/happy_bigqiang/article/details/81703672
3、后端代码配置管理:
将index.html 修改为index.jsp 文件,同时添加代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath }"></c:set>
这里要解决vue项目导入到后台,本地启动的时候没有差错,部署到tomcat的时候,能够访问到主页,但是页面空白的问题,
将所有引用static文件的链接添加${ctx}和用双引号包裹起来,例如:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath }"></c:set>
<!DOCTYPE html><html><head><meta charset=utf-8>
<meta name=viewport content="width=device-width,initial-scale=1">
<title>hello world</title>
<link href=https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css rel=stylesheet>
<script src=https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js></script>
<link href="${ctx}/static/css/app.9effc6a5696ad0bd623ace0e5883952.css" rel=stylesheet>
</head><body><div id=app>
</div>
<script type=text/javascript src="${ctx}/static/js/manifest.2ae2e69a052c3233fc65f8.js"></script>
<script type=text/javascript src="${ctx}/static/js/vendor.bf204869ea022389fef83.js"></script>
<script type=text/javascript src="${ctx}/static/js/app.5d96f8152b9e625232183296.js"></script>
</body>
</html>
这时在开发环境中前后端项目已经完成联调,不过只是在开发环境中,还需要进一步部署到tomcat下
4、利用maven打包项目;
首先修改pom.xml中的打包文件名,改为ROOT,这样部署到tomcat下浏览器不用输入项目名:如下:
<build>
<finalName>ROOT</finalName>
</build>
其次在idea开发环境中右边框中的maven projects 中项目名下点击
package,运行后,在项目的target目录下,即可看到打包的war包;
5、项目放入到tomcat下:
PS:不进行网页部署,之前网页部署原因是因为,复制ROOT.war 包到webapps下,访问localhost:8080/只能访问tomcat主页,无法访问项目,这里忠于找到原因,应该删除掉webapps下原有的ROOT/文件夹,再把ROOT.war 放到webapps下,tomcat才会自动加载新的ROOT.war(这样可以不看以下的点了)
将ROOT.war包复制到tomcat的webapps目录下(这里在开发环境下能够直接复制,在服务器上出现了bug,解决如下:)
第一点:
访问远程服务器Tomcat 8的管理页面报错:https://blog.csdn.net/chf1142152101/article/details/62042769
即修改
/webapps/manager/META_INF/context.xml
Context antiResourceLocking="false" privileged="true" >
<!--注释这里,去除对访问权限的设置
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
第二点:修改tomcat的默认端口(很可能被其他的程序占用)
编辑 tomcat目录下的/conf/server.xml
命令行下使用搜索所有8080端口,修改,如何搜索
/8080
第三点:
前提:先进入bin目录启动tomcat
./startup.sh
之后再利用tomcat网页进行部署war包:需要添加tomcat的用户,见以下链接
参考链接:tomcat部署war包不成功解决方法https://blog.csdn.net/Petershusheng/article/details/58193133
6、进入服务器tomcat的bin目录:运行startup.sh文件
关闭第五步打开的tomcat,进入bin目录
./shutdown.sh
这里将startup.sh挂在到后台进程:
nohup ./startup.sh & >/dev/null 2>&1
浏览器输入服务器地址,这里的端口是第五步的第二点修改的端口文件
bingo~