【问题标题】:Deploying war file from main class with jetty使用码头从主类部署战争文件
【发布时间】:2018-03-29 14:07:09
【问题描述】:

我确实想运行一个主类,它使用我的 vaadin 应用程序的内容部署一个码头服务器。

final Server server = new Server();
     final Connector connector = new ServerConnector( server );
     (( AbstractNetworkConnector ) connector).setPort( 3131 );
     server.setConnectors( new Connector[] { connector } ); //
     final WebAppContext webappcontext = new WebAppContext();
     final File warFile = new File( "target/avx-gcms-1.0.war" );
     webappcontext.setClassLoader( Thread.currentThread().getContextClassLoader() );
     webappcontext.setContextPath( "/" );
     webappcontext.setWar( warFile.getAbsolutePath() );
     server.setHandler( webappcontext );
     server.start();
     System.out.println( "Jetty started, please go to http://localhost:" + 3131 + "/" );

这是我的 main 方法的代码,但是当我运行它时,它可以正常工作,但 I do get this in m localhost.

这是我的workspace

我已经看到了一些与此相关的问题,但它们并不是很有帮助。感谢您提前提供帮助。

【问题讨论】:

  • 如何部署jetty服务器?将你的战争包含在完整的码头包中,而不是稍后推送它不是更简单吗?
  • 我以 jetty:run 为目标进行 maven 构建,这就是我现在运行它的方式。我想创建一个像 .bat 或 .launch 这样的文件,触发运行码头的主类。恐怕我无法理解如何将我的战争包含在完整的码头包中。 @AndréSchild

标签: java server jetty vaadin


【解决方案1】:

您可能希望以相反的方式执行此操作:而不是 war 文件,而是将应用程序直接设为可运行的 jar。

您需要将这个主类与您的 Vaadin UI 类一起添加到项目中,并将其直接连接到 Jetty:

public static void main(String[] args) {
    Server server = new Server(3131);

    ServletContextHandler contextHandler
            = new ServletContextHandler(ServletContextHandler.SESSIONS);
    contextHandler.setContextPath("/");

    ServletHolder sh = new ServletHolder(new VaadinServlet());
    contextHandler.addServlet(sh, "/*");
    contextHandler.setInitParameter("ui", HelloWorldUI.class.getCanonicalName());
    server.setHandler(contextHandler);

    try {
        server.start();
        server.join();

    } catch (Exception ex) {
        Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex);
    }
}

然后在你的pom.xml中配置maven-shade-pluginexec-maven-plugin,创建一个可运行的jar文件like in here

查看that project 获取完整示例,但请注意,设置与外部静态资源(widgetset 和 css)有些不同,但您可以跳过该配置。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-19
  • 1970-01-01
  • 1970-01-01
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 2012-11-27
相关资源
最近更新 更多