Поскольку вы используете Servlet Spec 3.1, вы используете довольно современную версию Glassfish.В этом случае вы делаете свою жизнь слишком сложной.Я бы порекомендовал либо удалить ваш web.xml
, либо изменить его на пустой:
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
</web-app>
Затем в любом пакете добавьте приведенный ниже код.Это сообщает контейнеру (Glassfish), что вы запускаете приложение REST, и выполняет функцию, аналогичную url-pattern
, которая есть у вас в текущем web.xml
:
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/rest")
public class RestApplication extends Application {
// intentionally empty
}
. С этим вы будете вызыватьваш сервис с http://localhost:8080/<webapp name>/rest/foods
, где webapp name
- это имя вашего веб-приложения.