У меня есть служба Jersey REST 2.5.1, которая обслуживается через сервер Grizzly. Пока все работает нормально. Я хочу добавить некоторое статическое содержимое, которое также обслуживается через Grizzly и предоставляется из моего файла JAR. Поэтому я использую CLStaticHttpHandler
. Когда я обращаюсь к статическим ресурсам, таким как мой 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
доступной в качестве страницы по умолчанию?