我正在使用maven-jetty-plugin快速运行和调试我在Eclipse/m2eclipse下开发的WebApp。它启动正常,我可以完全使用调试器,但我不能优雅地停止应用程序。
当我在console视图中执行ctrl+c操作时,尽管在启动器配置中启用了"allocate“,但它什么也不做。
在简单的java项目中,ctrl+c选项工作得很好(在windows上经过测试)。所以这看起来像是一些远程/嵌入式jvm问题。我的应用程序使用持久JMS队列,因此每次重启后,我都需要手动终止另一台服务器上的会话。这不是很敏捷。
谁知道这个问题的根源是什么?或者可能有一些已知的解决方法?
发布于 2012-12-28 01:09:37
如果你使用的是m2eclipse插件,你可以直接从eclipse运行maven。
1转到you debug configuration并在maven build下创建一个新条目。
2给它一个名字。
3选择maven项目的基目录。
4对于一个目标,输入jetty:run,然后单击debug按钮。
一切都应该很好。您可以在eclipse的控制台视图中终止它。所有断点都应该像往常一样工作。
要从eclipse中正常关闭应用程序,您必须执行以下操作。将以下配置添加到jetty插件的pom中。这里最重要的部分是停止键和停止端口。
<configuration>
<tmpDir>target/not/necessary</tmpDir>
<webAppConfig>
<contextPath>/${project.name}</contextPath>
</webAppConfig>
<stopPort>9966</stopPort>
<stopKey>jetty-stop</stopKey>
</configuration>接下来,为maven添加另一个运行配置,但这次将目标设置为jetty:stop。它将执行一次正常关闭。
为了使其更自动化:目标可以设置为jetty:stop jetty:start。这样,如果进程没有运行,将会有一个小警告,但引导过程将继续。否则,另一个进程将被正常关闭,然后启动服务器。
只需要一个命令,它可以通过一个快捷方式(运行最后一次构建)来运行,减少了上下文切换。
发布于 2015-12-30 16:41:42
解决方法1
在命令提示符下,cd进入您的webApp项目(例如,主pom.xml )。
mvn jetty:run
解决方法2
在VisualVM列表中的Jetty应用程序上,在您的新VisualVM
https://stackoverflow.com/questions/14057898
复制相似问题