2016-09-30 2 views
0

Я создаю толстую банку для приложения Vertx-Web. Я хотел бы обслуживать некоторые статические файлы. Я упаковал файл jar с папкой webroot. Смотрите ниже скриншот для моей структуры баночки:Vertx Webroot In Fat Jar

enter image description here

Я был в состоянии загрузить/статический/файл test.html WebRoot, выполнив:

routingContext.response().sendFile("webroot/static/test.html"); 

Однако, я не могу получить статический обработчик для работы. Ниже мой полный код:

package com.jdescript; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 

import io.vertx.core.AbstractVerticle; 
import io.vertx.core.http.HttpServer; 
import io.vertx.ext.web.Router; 
import io.vertx.ext.web.handler.StaticHandler; 

public class WebVerticle extends AbstractVerticle { 
    private HttpServer httpServer; 

    @Override 
    public void start() throws IOException { 
     httpServer = vertx.createHttpServer(); 

     Router router = Router.router(vertx); 
     router.route("/static/*").handler(StaticHandler.create()); 

     router.route("/test").handler(routingContext -> { 
      routingContext.response().sendFile("webroot/static/test.html"); 
     }); 

     httpServer.requestHandler(router::accept).listen(9999); 
    } 
} 

В приведенном выше примере, http://localhost:9999/static/test.html будет сказать «Not Found», в то время как http://localhost:9999/test будет оказывать test.html.

Любая помощь будет оценена по достоинству.

ответ

Смежные вопросы