Я пытаюсь развернуть API REST на основе Джерси-весна, используя Grizzly's com.sun.grizzly.http.embed.GrizzlyWebServer
. Я также хочу использовать статический контент, используя то же самое. Вот что у меня есть:GrizzlyWebServer + Весна + Джерси + служит статический контент из JAR
String host = "localhost";
int port = 8081;
// For jersey + Spring
ServletAdapter jAdapter = new ServletAdapter("jersey");
jAdapter.setContextPath("/api");
jAdapter.setServletInstance(new SpringServlet());
jAdapter.addContextParameter("contextConfigLocation", "classpath:spring-context.xml");
jAdapter.addServletListener("org.springframework.web.context.ContextLoaderListener");
jAdapter.addServletListener("org.springframework.web.context.request.RequestContextListener");
// create GrizzlyWebServer
GrizzlyWebServer grizzlyServer = new GrizzlyWebServer(host, port, "webapp", false);
// add jersey adapter
grizzlyServer.addGrizzlyAdapter(jAdapter, new String[]{"/api"});
// start server
grizzlyServer.start();
System.out.println("Start running server(host: " + host + ",port: " + Integer.toString(port));
System.out.println("Press any key to stop the server.");
// hang on
System.in.read();
// stop
grizzlyServer.stop();
В «Джерси адаптер» работает нормально, но я не в состоянии получить статический контент, присутствующий в папке «WebAPP», чтобы быть подан (404 ошибка).
Моя структура папок проекта выглядит следующим образом:
GrizzlyTest
-- src
| |
| -- main
| |
| -- java
| -- resources
| |
| -- webapp
| | |
| | -- index.html
| -- spring-context.xml
|
-- pom.xml
я делаю ошибку, указав путь к «веб-приложение» в строке new GrizzlyWebServer(host, port, "webapp", false);
??
Или, есть ли другой способ обслуживания статического контента?
Спасибо Алексею. У меня вопрос об аутентификации по запросам на статические ресурсы из банок, поэтому через CLStaticHttpHandler и StaticHttpHandler. Это недоказано, но похоже, что аутентификация не применяется к первому, а применяется к последнему? Эта строка в 'WebappContext' может объяснить это:' if (! (H instanceof StaticHttpHandler)) '(grizzly-http-servlet-2.3.17.jar). Мысли? Благодарю. – user598656
Ну, из того, что вы нашли, похоже, могут быть некоторые проблемы. Можете ли вы PLS. поделитесь тестовой записью с github - мне будет проще сменить цвет. – alexey