调试Tomcat应用程序启动

时间:2011-06-09 11:54:02

标签: java debugging tomcat servlets

通常情况下,我的Tomcat启动实例没有任何问题。但是,当我向“预览”Web应用程序添加新过滤器时,该应用程序无法启动:

09-Jun-2011 12:23:49 org.apache.catalina.core.StandardContext start
SEVERE: Error filterStart
09-Jun-2011 12:23:49 org.apache.catalina.core.StandardContext start
SEVERE: Context [] startup failed due to previous errors
09-Jun-2011 12:23:49 com.polopoly.application.StandardApplication destroy
INFO: Application 'preview' destroy started.

Tomcat本身就开始了 - 其他战争/网络应用程序正常部署并正常启动。

由于日志中没有堆栈跟踪,我不确定问题是什么。我无法将远程调试器连接到应用程序,因为它不再运行。我可以在应用程序的初始化或过滤器上放置断点吗?

在Tomcat中启动Web应用程序期间调试问题的最佳方法/首选方法是什么?

1 个答案:

答案 0 :(得分:12)

当然可以。只需将所有tomcat源放入IDE,然后使用

启动tomcat

catalina jpda start

放入适当的断点。例如某处org.apache.catalina.core.StandardContext

如果仍然无法捕获问题,请使用命令行: -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y

suspend=y在这里非常重要。

但我认为问题不在于tomcat本身,而在于你的应用程序。所以,从调试开始吧。将断点放入所有入口点(servlet,过滤器,监听器等)如果不起作用,请执行以下操作。

从web.xml中注释掉所有内容。启动应用。工作?精细!现在取消注释你的一半东西。等等。

我相信你能找到问题所在。祝你好运。