温馨提示×

Ubuntu中JSP如何进行调试

小樊
40
2025-12-12 06:30:48
栏目: 编程语言

Ubuntu 下 JSP 调试实操指南

一 环境准备与验证

  • 安装 JDK(建议 JDK 8/11/17):sudo apt update && sudo apt install openjdk-11-jdk
  • 验证:java -version、javac -version
  • 安装 Tomcat 9(Ubuntu 仓库包):sudo apt install tomcat9 tomcat9-admin
  • 启动与验证:sudo systemctl start tomcat9;sudo systemctl status tomcat9;访问 http://localhost:8080
  • 日志路径:/var/log/tomcat9/(常用 catalina.out、localhost..log)用于排查启动与运行期错误。

二 远程调试 Tomcat 步骤(IDE 断点生效)

  • 配置 Tomcat 以开启 JPDA 远程调试
    • 编辑:/usr/share/tomcat9/bin/catalina.sh
    • 在文件靠前位置加入:export JPDA_ADDRESS=8000;export JPDA_TRANSPORT=dt_socket
    • 说明:Ubuntu 仓库版 Tomcat 使用 catalina.sh 的 JPDA 环境变量来启用调试端口,默认监听 8000
  • 以调试模式启动 Tomcat
    • 方式 A:sudo /usr/share/tomcat9/bin/catalina.sh jpda start
    • 方式 B:sudo systemctl stop tomcat9 后执行 sudo /usr/share/tomcat9/bin/startup.sh(若已设置 JPDA 环境变量,startup.sh 也会以调试模式启动)
  • 在 IDE 中远程附加
    • IntelliJ IDEA:Run/Debug Configurations → Remote JVM Debug → Host: localhost,Port: 8000 → Debug
    • Eclipse:Debug Configurations → Remote Java Application → Host: localhost,Port: 8000 → Debug
  • 触发断点
    • 浏览器访问对应应用(如 http://localhost:8080/yourapp/your.jsp),IDE 会在断点处暂停,可查看变量、单步执行。
  • 常见问题
    • 端口被占用:lsof -i:8000;换端口或释放占用后重启 Tomcat
    • 无法连接:确认以 jpda 启动、防火墙放行 8000,以及 IDE 主机/端口配置正确。

三 不依赖 IDE 的排查与日志定位

  • 查看实时日志:tail -f /var/log/tomcat9/catalina.out(错误堆栈、类加载、启动失败原因)
  • 确认应用部署路径:默认 /var/lib/tomcat9/webapps/yourapp/;JSP 通常在 webapps/yourapp/webapps/yourapp/WEB-INF/ 下对应位置
  • 检查依赖库:第三方 JAR 放入 WEB-INF/lib/
  • 文件权限:sudo chown -R tomcat:tomcat /var/lib/tomcat9/webapps/yourapp/;sudo chmod -R 755 /var/lib/tomcat9/webapps/yourapp/
  • 重启生效:sudo systemctl restart tomcat9
  • 浏览器缓存:开发阶段禁用缓存或使用无痕模式访问,避免旧错误页面干扰。

四 常见问题与快速修复

  • 端口冲突
    • 8080 被占用:ss -tlnp | grep 8080;修改 /etc/tomcat9/server.xml 为未占用端口并重启
    • 8000 被占用:换 JPDA_ADDRESS=9000 后重启 Tomcat,并在 IDE 中同步改为 9000
  • 404 找不到 JSP
    • 确认应用已部署且结构正确(ROOT 或应用名目录、WEB-INF、web.xml 等),访问路径与部署目录一致
  • 类找不到或依赖缺失
    • 检查 WEB-INF/lib 是否包含所需 JAR,MANIFEST.MF 的 Class-Path 是否正确
  • 权限问题
    • Tomcat 需要对应用目录有读权限,必要时执行 chown/chmod(见上)
  • 缓存与旧版本
    • 清理 work/Catalina/localhost/ 工作目录并重启 Tomcat,浏览器强制刷新/无痕模式访问。

0