web 项目部署到tomcat一条龙服务

参考: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~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值