调试Tomcat应用程序启动

Mic*_*ael 4 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.
Run Code Online (Sandbox Code Playgroud)

Tomcat本身就很好 - 其他战争/网络应用程序部署并正常启动.

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

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

Ale*_*exR 13

你当然可以.只需将所有tomcat源放入IDE,然后使用启动tomcat

catalina jpda开始

提出适当的断点.比如某个地方org.apache.catalina.core.StandardContext.

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

suspend=y 这里很重要.

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

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

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

  • 没什么,除了 Java 5 及更高版本的字符串可以是 `-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y` 而不是 `-Xdebug -Xrunjdwp...`。 (2认同)