温馨提示×

怎样调试debian的jsp代码

小樊
42
2026-10-28 17:18:04
栏目: 编程语言

在 Debian 上调试 JSP(Java Server Pages)代码,通常分为 环境准备、日志查看、远程调试、IDE 联调 几个层面。下面按实用顺序说明。


一、确认运行环境(Debian)

常见组合:

  • Tomcat(最常见)
  • Jetty
  • JBoss / WildFly

以 Tomcat + Debian 为例。

1. 检查 Tomcat 是否安装

dpkg -l | grep tomcat
# 或
systemctl status tomcat9

常见路径:

  • 安装版:/var/lib/tomcat9/
  • 配置:/etc/tomcat9/
  • 日志:/var/log/tomcat9/

二、查看 JSP 错误(最基础)

1. 浏览器直接访问 JSP

例如:

http://localhost:8080/yourapp/test.jsp

常见错误:

  • 500 错误 → JSP 编译或运行异常
  • 404 → 路径错误

2. 查看 Tomcat 日志

tail -f /var/log/tomcat9/catalina.out
tail -f /var/log/tomcat9/localhost.*.log

JSP 编译错误会在这里显示(包括行号)。


三、开启 JSP 详细错误显示(开发环境)

修改 web.xml

在 WEB-INF/web.xml 中:

<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/error.jsp</location>
</error-page>

或直接在 JSP 顶部:

<%@ page isErrorPage="true" %>
<pre>
<%= exception.getMessage() %>
</pre>

✅ 生产环境不要开启


四、开启 Tomcat 远程调试(重点)

1. 停止 Tomcat

systemctl stop tomcat9

2. 设置调试参数

编辑:

/etc/default/tomcat9

添加:

JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000"

3. 启动 Tomcat

systemctl start tomcat9

确认端口:

netstat -tlnp | grep 8000

五、使用 IDE 远程调试(IntelliJ / Eclipse)

IntelliJ IDEA

  1. Run → Edit Configurations
  2. 添加 Remote JVM Debug
  3. Host: localhost
  4. Port: 8000
  5. 启动 Debug

Eclipse

  1. Debug Configurations
  2. Remote Java Application
  3. Host: localhost
  4. Port: 8000

✅ 可以在 JSP 对应的 Java 类中打断点(Tomcat 会把 JSP 编译成 .java)


六、查看 JSP 编译后的 Java 源码(非常有用)

Tomcat 会把 JSP 编译成 Java:

/var/lib/tomcat9/work/Catalina/localhost/yourapp/org/apache/jsp/

例如:

test_jsp.java
test_jsp.class

你可以:

  • 看生成的代码
  • 对照异常行号
  • 理解 EL / 脚本执行逻辑

七、常见问题排查清单

JSP 不更新

rm -rf /var/lib/tomcat9/work/Catalina/localhost/yourapp
systemctl restart tomcat9

编码问题

<%@ page pageEncoding="UTF-8" %>

类找不到

  • 检查 WEB-INF/lib
  • 检查 classpath

八、推荐调试组合(总结)

场景 方法
看错误 catalina.out
看逻辑 work 目录 Java 源码
断点 IDE + JDWP
热更新 删除 work 目录

如果你愿意,可以告诉我:

  • 用的是什么 Web 容器
  • JSP 是 纯脚本 / EL / JSTL
  • 报错内容或截图

我可以给你更针对性的调试方案。

0 踩