温馨提示×

如何利用Ubuntu进行JSP调试

小樊
37
2025-12-06 07:51:30
栏目: 编程语言

在 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 enable tomcat9
  • 验证服务:sudo systemctl status tomcat9;访问 http://localhost:8080 出现欢迎页即正常

二 本地调试步骤 Eclipse 或 IntelliJ IDEA

  • 准备项目
    • 创建 Dynamic Web Project(Eclipse)或 Maven/Gradle Web 项目(IDEA),将 JSP 放入 Web 内容目录(如 WebContent 或 src/main/webapp)。
    • 添加 Tomcat 运行时:Eclipse 在 Preferences → Server → Runtime Environments 添加 Apache Tomcat v9;IDEA 在 Project Structure → SDKs/Application Servers 配置 Tomcat 安装路径。
  • 以调试方式运行
    • Eclipse:右键项目 → Debug As → Debug on Server,选择配置好的 Tomcat;IDEA:Run/Debug Configurations 新建 Tomcat Server → Local,部署应用后点击 Debug。
  • 断点与热部署
    • JSP 的 scriptlet/声明/表达式或关联的 Servlet/Filter/Listener 中设置断点;浏览器访问对应页面触发断点,IDE 进入调试视图(变量、栈、表达式求值)。
    • 使用 热部署(如 Eclipse 的自动发布或 IDEA 的 HotSwap)提升迭代效率;涉及类结构变更时重启应用。

三 远程调试 Tomcat 进程

  • 开启调试端口
    • 编辑 /usr/share/tomcat9/bin/catalina.sh,在文件靠前位置加入:export JPDA_ADDRESS=8000;export JPDA_TRANSPORT=dt_socket
    • 重启 Tomcat:sudo systemctl restart tomcat9(将以 JPDA 模式监听 8000 端口)
  • IDE 附加调试
    • Eclipse:Run → Debug Configurations → Remote Java Application,Host 填 localhost,Port 8000,选择项目源码后 Debug。
    • IDEA:Run/Debug Configurations → Remote JVM Debug,Host localhost,Port 8000,选择模块类路径后 Debug。
  • 访问 http://localhost:8080/your-app/page.jsp 触发断点,IDE 将捕获执行。

四 日志与常见问题排查

  • 查看日志定位错误
    • 实时查看:tail -f /var/log/tomcat9/catalina.out
    • 其他日志:/var/log/tomcat9/localhost*.logmanager.*.loghost-manager.*.log
  • 常见问题速查
    • 应用未生效:确认已部署到 /var/lib/tomcat9/webapps/,必要时重启 Tomcat(sudo systemctl restart tomcat9)
    • 依赖缺失:将 JAR 放入 WEB-INF/lib/
    • 权限问题:sudo chown -R tomcat:tomcat /var/lib/tomcat9/webapps/your_app/;sudo chmod -R 755 /var/lib/tomcat9/webapps/your_app/
    • 端口占用:检查 8080/8000 是否被占用(ss -ltnp | grep -E ‘8080|8000’),必要时调整端口或释放占用
    • 浏览器缓存:使用无痕模式或强制刷新(Ctrl+F5)

五 实用建议与工具

  • 开发工具链:JDKApache TomcatEclipse/IntelliJ IDEAMaven/GradleGitMySQL/PostgreSQLVisualVM/JDB 等,可显著提升编码与调试效率。
  • 版本兼容:确保 JDK 与 Tomcat 版本匹配(如 Tomcat 9 建议使用 JDK 8/11);必要时在 IDE 中显式设置 Project SDKLanguage Level

0