CentOS环境下Servlet配置实战指南
在CentOS服务器上配置Servlet运行环境是java Web开发的基础技能,本文将从零开始讲解如何在CentOS 7/8系统上搭建标准的Servlet运行环境,并针对实际部署中的常见问题提供解决方案。

一、环境准备与组件安装
1、JDK环境配置
通过官方仓库安装OpenJDK:
- sudo yum install java-11-openjdk-devel
验证安装结果:
- java -version && javac -version
建议设置JAVA_HOME环境变量:
- echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk' >> ~/.bashrc
2、Tomcat服务器部署
下载最新稳定版(以Tomcat 9为例):

- wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.85/bin/apache-tomcat-9.0.85.tar.gz
解压并配置权限:
- tar -xzf apache-tomcat-9.0.85.tar.gz
- sudo mv apache-tomcat-9.0.85 /opt/tomcat
- sudo chmod -R 755 /opt/tomcat
二、Servlet项目部署流程
1、创建标准Web应用结构
- mkdir -p MyWebApp/WEB-INF/{classes,lib}
编写web.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_4_0.xsd"
- version="4.0">
- </web-app>
2、编译部署Servlet类
示例HelloWorld.java:
- import java.io.*;
- import javax.servlet.*;
- import javax.servlet.http.*;
- public class HelloWorld extends HttpServlet {
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- response.setContentType("text/html");
- PrintWriter out = response.getWriter();
- out.println("<h1>CentOS Servlet运行成功!</h1>");
- }
- }
编译命令:

- javac -cp /opt/tomcat/lib/servlet-api.jar HelloWorld.java -d WEB-INF/classes/
3、部署到Tomcat
- jar cvf MyWebApp.war *
- cp MyWebApp.war /opt/tomcat/webapps/
三、服务优化与安全配置
1、防火墙设置
- sudo firewall-cmd --permanent --add-port=8080/tcp
- sudo firewall-cmd --reload
2、服务自启动配置
创建systemd服务文件:
- sudo vi /etc/systemd/system/tomcat.service
添加以下内容:
- [Unit]
- Description=Apache Tomcat
- After=syslog.target network.target
- [Service]
- User=tomcat
- Group=tomcat
- ExecStart=/opt/tomcat/bin/startup.sh
- ExecStop=/opt/tomcat/bin/shutdown.sh
- [Install]
- WantedBy=multi-user.target
3、内存参数优化
修改catalina.sh:
- JAVA_OPTS="-Xms512m -Xmx1024m -XX:MaxMetaspaceSize=256m"
四、常见问题排查
问题1:404资源未找到
- 检查war包是否完整
- 确认webapps目录权限
- 查看logs/catalina.out启动日志
问题2:ClassNotFoundException
- 检查servlet-api.jar引用
- 确认class文件存放路径
- 清理Tomcat缓存:work/Catalina目录
问题3:权限拒绝错误
- sudo semanage port -a -t http_port_t -p tcp 8080
- sudo restorecon -Rv /opt/tomcat
笔者在多年运维实践中发现,80%的部署失败案例源于环境变量配置不当,建议使用env
命令检查运行时环境,特别注意CATALINA_HOME
和JAVA_HOME
的设定,定期更新Tomcat版本、及时打安全补丁是保障服务稳定的关键,对于生产环境,推荐配置HTTPS加密访问并启用JMX监控,这些措施能有效提升服务可靠性和可维护性。