#java #maven #jersey #jax-rs #grizzly
#java #maven #джерси #jax-rs #grizzly
Вопрос:
К моему pom.xml Я добавляю одну зависимость.
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
<version>2.10.1</version>
</dependency>
Основная часть кода:
public static void main(String[] args) {
final URI baseUri = UriBuilder.fromUri("http://localhost").port(9998).build();
//add test configs
Set rest = new HashSet<Class>();
rest.add(TestResource.class);
final ResourceConfig config = new ResourceConfig(rest);
HttpServer server = GrizzlyHttpServerFactory.createHttpServer(baseUri, config);
try {
//server.getServerConfiguration().addHttpHandler(new StaticHttpHandler("web/"),"/w");
server.getServerConfiguration().addHttpHandler(new StaticHttpHandler("src/main/resources/web"),"/");
server.start();
System.out.println();
System.out.println("Press enter to stop the server...");
System.in.read();
} catch (IOException e) {
e.printStackTrace();
} finally {
server.shutdownNow();
}
}
В таком случае API не работает, но статический веб, который развернут в «/», работает.
Пожалуйста, проверьте этот экран.
Затем, когда я изменяю несколько строк кода:
server.getServerConfiguration().addHttpHandler(new StaticHttpHandler("src/main/resources/web"),"/www");
API и статический веб работают, но веб не находится в «/» его в «/ www».
Пожалуйста, проверьте это.
Не могли бы вы, пожалуйста, помочь мне получить рабочий API в «/ api» и статический веб в «/»?
Ответ №1:
Создайте baseuri, подобный:
final URI baseUri = UriBuilder.fromUri("http://localhost/api").port(9998).build();
Комментарии:
1. Спасибо. Но не помогло : (тогда то же самое.
2. Хм, после этого изменения у меня все заработало. Чего именно вы пытаетесь достичь? 🙂
Ответ №2:
Вы могли бы решить эту проблему, указав, какими расширениями вы хотели бы управлять статическим обработчиком, с шаблоном типа /*.jpg, *.html,…
Таким образом, сервер должен иметь возможность выбирать подходящий обработчик.
Комментарии:
1. Не могли бы вы опубликовать свою новую конфигурацию?
2. server.getServerConfiguration().addHttpHandler(новый StaticHttpHandler(«src/main/resources/web/*»), «/www»);
3. или как этот server.getServerConfiguration().addHttpHandler(новый StaticHttpHandler(«src/main/resources/web/*.html»), «/www»);
4. Я бы еще раз попробовал что-то вроде этого StaticHttpHandler(«src/main /resources /web /»), «/*.html»);