1

我正在使用 jettyrunner 来执行我的战争文件。我正在使用命令 java -jar jetty runner ex.war。但是我通过从 java 执行这个命令从我的 java 应用程序运行这个码头服务器。我的问题是它第一次运行良好,但是第二次如果我再次使用相同的代码执行另一个war文件,它执行旧的war。我找到了旧的码头服务器继续运行的原因。我怎么能从java中停止这个服务器以启动码头服务器进行另一场战争。

4

2 回答 2

2

一种选择应该是:

http://wiki.eclipse.org/Jetty/Howto/Secure_Termination

另一个是使用 ShutdownHandler:

http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ShutdownHandler.java

或者不要像java代码那样直接使用jetty-runner,而只是编写一个小的嵌入式用法:

http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty

于 2012-05-23T12:29:32.927 回答
0

事实证明,jetty-runner.jar 没有停止使用stop-portand运行的现有 jetty 进程的功能stop-key

我在https://github.com/jetty-project/jetty-documentation/blob/master/src/docbkx/administration/runner/jetty-runner.xml中找到了答案

然后,要从不同的终端停止码头,您需要提供相同的端口和关键信息。为此,您需要本地安装 jetty、jetty-maven-plugin jetty-ant插件,或编写自定义类

幸运的是,我正在实施 gradle build,因此jetty-ant满足了我的需求。

于 2017-01-20T13:37:55.057 回答