Кажется, что в настоящее время нет прямого способа настроить гризли с помощью web.xml
.Однако я использовал частичное решение, которое может быть началом.
web.xml
Сначала, чтобы понять решение, мы должны понять, что означает использование web.xml
.Это в основном используется для настройки вашего веб-приложения (см. ответ для более подробной информации).В этом случае мы настраиваем init-params
для сервлета.
(частичное) решение
Вместо использования web.xml
и вместо ResouceConfig.class
мы можем использовать Grizzly в качестве нашего сервлета и инициализации параметров.Например,
<web-app>
<servlet>
<servlet-name>Jersey</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.resource, com.provider</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Jersey</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
даст что-то вроде:
protected HttpServer create() throws Throwable {
HashMap<String, String> initParams = new HashMap<>();
//ServerProperties.PROVIDER_PACKAGES is equal to "jersey.config.server.provider.packages"
initParams.put(ServerProperties.PROVIDER_PACKAGES, "com.resource,com.provider");
//Make sure to end the URI with a forward slash
HttpServer server = GrizzlyWebContainerFactory.create("http://localhost:8080/", initParams);
return server;
}
Таким образом, мы можем поместить все init-params
, которые мы хотим.Однако это решение не может заменить целый web.xml
.