Сервер Grizzly со статическим контентом и ресурсом REST

у меня есть служба Jersey REST 2.5.1, которая обслуживается через сервер Grizzly. Пока все работает нормально. Я хочу добавить статический контент, который также подается через Grizzly и предоставляется из моего файла JAR. Поэтому я использую CLStaticHttpHandler. Когда я получаю доступ к статическим ресурсам, таким как my index.html явно (например,http://localhost:8080/index.html), все работает нормально. Однако, когда я пытаюсь получить доступ к корневой http://localhost:8080, Я получаю 404. Код выглядит так:

ObjectMapper mapper = new ObjectMapper();
// some configuration stuff here

JacksonJaxbJsonProvider provider = new JacksonJaxbJsonProvider();
provider.setMapper(mapper);

ResourceConfig resourceConfig = new ResourceConfig()
            .packages("my.restapi.package")
            .register(provider);

HttpServer httpServer = GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), resourceConfig);
HttpHandler httpHandler = new CLStaticHttpHandler(HttpServer.class.getClassLoader(), "/static/");
httpServer.getServerConfiguration().addHttpHandler(httpHandler, "/");

насколько я могу скажите от отладки,org.glassfish.grizzly.http.server.CLStaticHttpHandler.handle(String, Request, Response) никогда не вызывается. Любые намеки, как я могу сделать index.html доступна как страница по умолчанию?

1 ответов


после нескольких потерянных часов я чувствую себя немного глупо, но простым решением было указать путь в BASE_URI (http://localhost:8080/api/ вместо http://localhost:8080/). Теперь, при доступе /, Я index.html и остальные методы находятся под /api.