Причал - путь требует косой черты - PullRequest
0 голосов
/ 06 мая 2018

Итак, у меня есть контейнер Jetty с URL-адресом, подобным следующему: http://localhost:7071/my-app-name/ui/. Проблема, с которой я сталкиваюсь, заключается в том, что Jetty, похоже, требует последней косой черты.

Так что это работает:

http://localhost:7071/my-app-name/ui/

Но это не так:

http://localhost:7071/my-app-name/ui

Это действительно странно, я бы хотел, чтобы путь без косой черты шел в то же место, что и путь с косой чертой. Этот путь является домашней страницей всего приложения, поэтому я хочу, чтобы оно работало.

Вот некоторые из моих настроек Jetty. Любая помощь будет оценена:

PS. Я работаю в Котлине. Принципы его работы должны быть такими же.

server = Server(props.getProperty(AppProps.PORT).toInt())
val handler = ServletContextHandler(server, root)
val appServletHolder = ServletHolder("AppServlet", AppServlet::class.java)
handler.addServlet(appServletHolder, "/ui/*")
handler.addEventListener(AppCore(props))
server.start()

Я знаю, что я указываю "/ ui / *" в конфигурации моего держателя сервлета. Но я не могу придумать, как это изменить, я пробовал несколько комбинаций, и ни одна из них не работает лучше.

Вероятно, я упускаю что-то простое, но если кто-то может помочь, это будет с благодарностью.

1 Ответ

0 голосов
/ 06 мая 2018

Вы сообщили спецификации сервлета, что хотите прослушивать /ui/*, поэтому он требует, чтобы ваши URL содержали часть /uri/.

Но еще не все потеряно, просто сообщите спецификации сервлета другие URL-шаблоны, которые вас также интересуют. (Сервлеты могут отображаться на столько URL-шаблонов, сколько вы хотите)

ака:

server = Server(props.getProperty(AppProps.PORT).toInt());
val handler = ServletContextHandler(server, root);
val appServletHolder = ServletHolder("AppServlet", AppServlet::class.java);
handler.addServlet(appServletHolder, "/ui"); // <-- like that
handler.addServlet(appServletHolder, "/ui/*");
handler.addEventListener(AppCore(props));
server.start();
...