Tomcat:部署前后端分离项目踩坑

很久没有使用Tomcat部署前后端分离项目了,这两天遇到小伙伴有这方面的需求,就做了尝试,踩坑记录如下。

坑点1:SpringBoot打包本地jar包依赖未被包含

SpringBoot如果在开发阶段应用了本地jar包,在打成jar包时,通常是需要在pom.xml文件中添加如下配置,可以确保在打包阶段本地jar包被正常引入和构建。

但是,将SpringBoot打包成war包时,以上配置就会失效了。将其放入tomcat中启动时,会报错:找不到本地依赖的jar包。其实,该jar包已经被构建过了,只是没有被放到正确的路径下。

在tocmat的webapps中,查看服务路径WEB_INFO下,有两个子路径:lib和lib-provided,而提示找不到的jar包就是被放到了lib-provided子路径下,只需要将其拷贝到lib子路径下,即可保证war包部署到tomcat中之后,可以正常启动。

坑点2:Vue3前端项目部署路径问题

前端项目使用history路由模式,页面部署之后,只能通过localhost:8080/xxx进行访问,无法通过localhost:8080/路径名/xxx-router访问。

可以修改vite.config.ts中的base配置项进行解决,

坑点3:Vue3前端项目部署之后,刷新页面404

解决方案:在前端所在目录下新建:WEB-INF/web.xml文件,写入内容,

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.0" metadata-complete="true">
<display-name>Router for Tomcat</display-name>
  <error-page>
  <error-code>404</error-code>
  <location>/index.html</location>
  </error-page>
</web-app>
相关推荐
Flynt几秒前
Linear 用 1000 个 PR 换掉 styled-components,我写了 200 个按钮,把这笔账复现了一遍
前端·css·preact
JavaGuide1 小时前
NVIDIA 又开源了!这次给 AI Agent 加上权限管控
前端·后端
excel1 小时前
prisma 如何处理数据库竞态
前端·数据库·后端
莪_幻尘3 小时前
Skill 体检:30 个 Skill 全凭感觉?体检器先自曝了 8 个“假 0 分
前端·人工智能·llm
风骏时光牛马3 小时前
AI模型综合能力评测:性能、指令遵循与多场景实测对比
前端
Frag0ut3 小时前
Chrome与Chromium内核浏览器在Windows 11上的新特性全景解析
前端·chrome·windows·web安全·chromium·gemini ai·playready drm
hiahiahia1233 小时前
实现完整 Tool Dispatcher
开发语言·前端
IT_陈寒3 小时前
Java线程池这破玩意,差点让我周末加班排查到凌晨
前端·人工智能·后端
Mr_Mao4 小时前
告别选型困难!集 VueUse、ahooks、Mantine 于一身:286 个 Hook 的 ReaUse 来了
前端·javascript·react.js
泡海椒5 小时前
趋势分析报表:jquick-pdf折线图PDF生成实战
java·大数据·运维·服务器·前端·pdf