【问题标题】:Start server with help of Jetty runner在 Jetty runner 的帮助下启动服务器
【发布时间】:2013-09-27 11:33:57
【问题描述】:

我有什么:

在 main 方法中启动嵌入式码头服务器的应用程序。当我需要在服务器上移动它时,我应该制作一个 myApp.jar 并在服务器上启动它。

我想要什么: 不要在应用程序内部启动嵌入式码头服务器,而是制作 myApp.war 文件并在 Jetty runner 的帮助下启动它

什么问题: 在启动嵌入式服务器之前,我将 WebsocketHandler 设置为我的服务器,然后将 ResourceHandler 设置为 WebsocketHandler(参见下面的代码)。 我不知道如何在 jetty runner 命令的帮助下传递这些参数。

问题:

我可以使用 java -jar jetty-runner.jar contexts/my.xml 吗? 如果是,我该怎么做

我现在怎么做:

public static void main(String[] args) {

WebSocketHandler handler = new WebSocketHandler() {
  @Override
  public void configure(WebSocketServletFactory factory) {
    factory.getPolicy().setMaxMessageSize(4533423);
    factory.getPolicy().setIdleTimeout(Long.MAX_VALUE);
    factory.setCreator(creator);
  }
};
Server server = new Server(8080);
server.setHandler(handler);
ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler .setDirectoriesListed(true);
resourceHandler .setResourceBase(WEB_CLIENT_PATH);
handler.setHandler(resourceHandler );
server.start();
server.join();
}

【问题讨论】:

  • 34 条评论和任何评论,尽管有边界期限!请描述一下为什么回答我的问题这么难?
  • 建议您简化您的问题。消除 jetty-runner(它是一个没有多少人使用的第 3 方工具,因此您会自动降低获得答案的可能性)。您一次处理了太多主题(嵌入式 + jetty-runner + webappcontext from war + custom handlers)。考虑将问题分解为子问题。

标签: jetty


【解决方案1】:

如果需要设置jetty,有documentation中描述的方法:

java -jar jetty-runner.jar --config my/jetty.xml my.war

如果不是,contexts/my.xml 是什么?

【讨论】:

  • 我的意思是我不知道如何以这种方式传递WebSocketHandler和ResourceHandler(使用java -jar -jetty-runner.jar)。我需要在 xml 文件中配置它们吗?
  • 我猜如果它们可以使用 java 配置,你也可以使用 jetty.xml 配置它们。
  • 是的,实际上问题是如何在 xml-file 的帮助下配置它们
  • 基本上看一下语法参考:wiki.eclipse.org/Jetty/Reference/jetty.xml_syntax 很强大。对于您的处理程序,创建单独的类会更容易。
  • 最新的 Jetty XML 语法文档不在 wiki 中。见eclipse.org/jetty/documentation/current/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-18
相关资源
最近更新 更多