Luk*_*uke 16 java eclipse tomcat servlets
我正在构建一个相对简单的Web应用程序,其中主servlet实现ServletContextListener接口以确定上下文是已启动还是已停止.我实现了我的contextInitialized,contextDestroyed,init和destroy方法(包括init和destroy调用super基类).我目前没有实现任何真正的功能,除了我在contextInitialized加载log4j.properties文件的方法中初始化log4j .
然而,当我从Eclipse中启动和停止Tomcat服务器时,所有内容都以正确的顺序调用(我正在使用一些System.out.println来测试它)但是在停止服务器大约10秒后我会看到一个Eclipse弹出窗口说明下列:
localhost上的服务器Tomcat v6.0服务器没有响应.你想终止这台服务器吗?单击"确定"以终止服务器,或单击"取消"继续等待.
这是我停止服务器时在Eclipse控制台中打印的内容:
04/01/2010 7:39:13 PM org.apache.catalina.core.StandardService stop
INFO:停止服务Catalina
contextDestroyed
04/01/2010 7:39:13 PM org.apache.coyote.http11.Http11Protocol destroy
INFO:在http-8080上停止Coyote HTTP/1.1
在最后INFO一条消息之后,它会挂起,直到出现弹出窗口.如果我选择等待,请按取消,Eclipse变得无法使用,我必须从终端终止Eclipse进程.
任何关于如何解决这个问题的意见将不胜感激.
更新:
问题是由我在我的init方法中启动的非守护程序线程引起的(忘了提到:).通过使用该stop方法显式停止线程解决了该问题,即使该方法似乎已被弃用.
小智 6
在Windows中打开命令提示符或PowerShell并键入
netstat -nao
Run Code Online (Sandbox Code Playgroud)
从结果和类型中找到相应端口的pid
taskkill /f /pid [port number]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20712 次 |
| 最近记录: |