Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
终止在eclipse中运行的maven jetty插件_Eclipse_Maven_Jetty_M2eclipse - Fatal编程技术网

终止在eclipse中运行的maven jetty插件

终止在eclipse中运行的maven jetty插件,eclipse,maven,jetty,m2eclipse,Eclipse,Maven,Jetty,M2eclipse,我正在使用maven jetty插件快速运行和调试我在Eclipse/m2eclipse下开发的WebApp。 它启动正常,我可以完全使用调试器,但我无法正常停止应用程序 当我在控制台视图中执行ctrl+c时,它什么也不做,尽管在启动器配置中启用了“分配控制台” 在简单的java项目中,ctrl+c选项可以正常工作(在windows上测试)。因此,这似乎是一些远程/嵌入式jvm问题。我的应用程序使用持久JMS队列,因此每次重新启动后,我都需要手动终止另一台服务器上的会话。这不是很灵活 有人知道问

我正在使用maven jetty插件快速运行和调试我在Eclipse/m2eclipse下开发的WebApp。 它启动正常,我可以完全使用调试器,但我无法正常停止应用程序

当我在控制台视图中执行ctrl+c时,它什么也不做,尽管在启动器配置中启用了“分配控制台”

在简单的java项目中,ctrl+c选项可以正常工作(在windows上测试)。因此,这似乎是一些远程/嵌入式jvm问题。我的应用程序使用持久JMS队列,因此每次重新启动后,我都需要手动终止另一台服务器上的会话。这不是很灵活


有人知道问题的根源是什么吗?或者可能有一些已知的解决方法?

如果您使用m2eclipse插件,您可以直接从eclipse运行maven

1转到调试配置,并在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>

目标/不/必要
/${project.name}
9966
码头停靠站
接下来为maven添加另一个运行配置,但这次将目标设置为jetty:stop。它将执行优雅的关机

为了使其更加自动化:可以将目标设置为jetty:stop jetty:start。这样,如果进程未运行,将出现一个小警告,但引导进程将继续。否则 其他进程将正常关闭,然后启动serwer


只需要一个命令,它可以通过一个快捷方式(运行上次构建)运行,减少上下文切换。

如果您使用m2eclipse插件,您可以直接从eclipse运行maven

1转到调试配置,并在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>

目标/不/必要
/${project.name}
9966
码头停靠站
接下来为maven添加另一个运行配置,但这次将目标设置为jetty:stop。它将执行优雅的关机

为了使其更加自动化:可以将目标设置为jetty:stop jetty:start。这样,如果进程未运行,将出现一个小警告,但引导进程将继续。否则 其他进程将正常关闭,然后启动serwer


只需要一个命令,它可以通过一个快捷方式(运行上次生成)运行,从而减少上下文切换。

解决方案1

  • 从命令提示符,将cd发送到您的webApp项目(例如,主pom.xml)
  • 使用
    mvn Jetty:Run
  • 用ctrl+c组合键杀戮可以从那里开始!(至少使用Windows cmd)
  • 解决方案2

  • 安装
  • 在你的新VisualVM上
  • 右键单击VisualVM列表中的Jetty应用程序,然后单击“Kill Application”

  • 解决方案1

  • 从命令提示符,将cd发送到您的webApp项目(例如,主pom.xml)
  • 使用
    mvn Jetty:Run
  • 用ctrl+c组合键杀戮可以从那里开始!(至少使用Windows cmd)
  • 解决方案2

  • 安装
  • 在你的新VisualVM上
  • 右键单击VisualVM列表中的Jetty应用程序,然后单击“Kill Application”

  • 这就是我从一开始就在做的。也许我不清楚。我可以使用“红色按钮”终止进程,但它不会执行正确的关闭。当我在使用ctrl+c从命令行启动进程后停止该进程时,它将执行正确的清理。但是ctrl+c在您描述的场景中不起作用(至少在我的机器上是这样的-虚拟机windows xp)。好的。对不起,我错过了你问题的那一部分。我已经补充了关于如何从eclipse优雅地关闭jetty的答案。这是一种应该有效的方法。我接受这个答案。它不像我想的那么舒服,但它应该能胜任。谢谢。我今天有一个小小的顿悟。如果我在jetty:start之前加上jetty:stop目标,效果会很好。我会更新你的答案。这个配置应该放在webapp的主pom.xml中,还是你说jetty插件本身有一个特定的配置?这就是我从一开始就在做的。也许我不清楚。我可以使用“红色按钮”终止进程,但它不会执行正确的关闭。当我在使用ctrl+c从命令行启动进程后停止该进程时,它将执行正确的清理。但是ctrl+c在您描述的场景中不起作用(至少在我的机器上是这样的-虚拟机windows xp)。好的。对不起,我错过了你问题的那一部分。我已经补充了关于如何从eclipse优雅地关闭jetty的答案。这是一种应该有效的方法。我接受这个答案。它不像我想的那么舒服,但它应该能胜任。谢谢。我今天有一个小小的顿悟。如果我在jetty:start之前加上jetty:stop目标,效果会很好。我会更新你的答案。这个配置应该放在webapp的主pom.xml中,还是你说jetty插件本身有一个特定的配置?