Я хочу использовать аннотацию @WebServlet и аннотацию @Path в одно и то же время в jetty

#java #jakarta-ee #jersey-2.0 #servlet-3.0

#java #джакарта-ee #джерси-2.0 #servlet-3.0

Вопрос:

Во-первых, пожалуйста, простите меня за мой неуклюжий английский.

[Что я хочу сделать]

Я хочу знать, @WebServlet аннотации Servlet 3.0 и @Path аннотации Jersey 2.22.2, они могут использовать одно и то же время?

[Что я хочу, так это помочь]

  • Могу ли я использовать две аннотации одновременно?
  • Если я могу использовать эти аннотации, то как это использовать?

Спасибо.

Ответ №1:

аннотация @Path определяет путь к RESTful веб-сервису, поэтому, когда у вас есть @Path («/SomeService»), это переведет в www.yourapp.com/baseRestUrl/SomeService. Вы также можете определить это в методах, которые предоставляют службы REST. Обратите внимание, что baseRestUrl определен внутри web.xml или в классе, который расширяет класс приложения.

С другой стороны, @WebServlet(«/SomePath») указывает, что сервлет будет прослушивать запрос на www.yourapp.com/SomePath по сути, это замена элемента отображения сервлета в web.xml. Вы все еще можете настроить сервлеты подобным образом, вам решать, предпочитаете ли вы конфигурацию XML или аннотаций.

Комментарии:

1. > Вы все еще можете настроить сервлеты подобным образом, вам решать, предпочитаете ли вы конфигурацию XML или аннотаций. Это также было подтверждено I. Но я не могу получить доступ www.myapp.com/SomePath с @WebServlet аннотацией.

2. Никто не может помочь с информацией «не удается получить доступ www.myapp.com/SomePath «, Что это за сообщение об ошибке?, как насчет консоли eclipse / журналов ошибок?, пожалуйста, попробуйте подумать таким образом, вы можете поддержать / принять этот ответ, если это поможет.

3. Это означает, что не удалось выполнить сопоставление URL, не удалось найти метод внутри аннотированного класса @Webservlet. См. google.ca / …

4. Я могу получить доступ к www.myapp.com/SomePath с помощью <servlet-mapping> . Но я не могу получить к ней доступ с помощью @WebServlet("SomePath") .

5. Спасибо за ответ. Пожалуйста, посмотрите на приведенный ниже исходный код, если это хорошо, если. teratail.com/questions/52080