部署项目到Linux踩的坑
一、tomcat版本不一致
在windows上开发时用的tomcat9,实现javax.servlet.Filter的实现类无需重写init()和destroy(),
但我在Linux上安装的tomcat是8.5,javax.servlet.Filter的实现类需要重写init()和destory()。
导致我能访问到linux上tomcat主页,但是不能访问部署的项目,在日志文件中发现全是java.lang.AbstractMethodError报错。
在过滤器中实现了init()和destory()方法后重新打包部署就能访问了。
二、验证码图片加载不出来
这里在博客园看到一个大佬发的,在这记录一下
用java写了一个验证码功能,把项目放linux服务器下之后图片显示不出来,后来同事找到了原因。
1.什么是Headless mode?
Headless模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标。2.何时使用和headless mode?
Headless模式虽然不是我们愿意见到的,但事实上我们却常常需要在该模式下工作,尤其是服务器端程序开发者。因为服务器(如提供Web服务的主机)往往可能缺少前述设备,但又需要使用他们提供的功能,生成相应的数据,以提供给客户端(如浏览器所在的配有相关的显示设备、键盘和鼠标的主机)。3.如何使用和Headless mode?
一般是在程序开始激活headless模式,告诉程序,现在你要工作在Headless mode下,就不要指望硬件帮忙了,你得自力更生,依靠系统的计算能力模拟出这些特性来:
System.setProperty("java.awt.headless","true");解决:
生成图片的java文件里写:
public class RandomNumUtil {
static{
System.setProperty("java.awt.headless", "true");
}}
原文地址:https://www.cnblogs.com/zf2011/archive/2011/11/23/2260658.html
加上那段代码就能显示了,666.
三、部分css样式缺失
有些元素没有样式了,打开控制台发现请求css的响应都是404,还有一些请求js的也是404,还不知道为啥。。。
--------------------------------------------------------------------------------------------------------------------------分割线-----------------------------------------------------------------------------------------
原因是:
之前写项目的时候 在某些页面配置了<base>标签,而base中设置的项目名和部署的不一致,导致访问404,把部署的项目名改成跟base标签一样的就行了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异