Я использую Grizzly для обслуживания моего сервиса REST, который может иметь несколько «модулей». Я хотел бы иметь возможность использовать один и тот же базовый URL для службы и для статического контента, так что я могу получить доступ ко всем этим адресам:Как обслуживать статический контент и ресурсы на одном базовом URL-адресе с Grizzly
- http://host:port/index.html
- http://host:port/module1/index.html
- http://host:port/module1/resource
- http://host:port/module2/index.html
- http://host:port/module2/resource
Код, который я пытаюсь установить thi S с выглядит следующим образом:
private HttpServer createServer(String host, int port, ResourceConfig config)
{
HttpServer server = GrizzlyHttpServerFactory.createHttpServer(URI.create("http://" + host + ":" + port + "/"), config, false);
HttpHandler httpHandler = new CLStaticHttpHandler(HttpServer.class.getClassLoader(), "docs/");
server.getServerConfiguration().addHttpHandler(httpHandler, "/");
return server;
}
С помощью этого кода, я только в состоянии увидеть HTML-страницы, и я получаю «ресурса, идентифицированного пути не существует» ответ, когда я пытаюсь получить свои ресурсы. Когда я комментирую код, чтобы добавить HttpHandler, то я могу получить доступ к своим ресурсам (но у них нет документов, конечно). Что мне нужно сделать для доступа к моим ресурсам и моему статическому контенту?
Я действительно не пробовал это, так как в итоге я придумал другую работу. Если у меня возникнут проблемы с этим, я попробую. Спасибо за ответ! – Amber