gpt4 book ai didi

java - 如何为 Jetty 9 启用 GZIP

转载 作者:搜寻专家 更新时间:2023-10-31 20:11:18 24 4
gpt4 key购买 nike

我正在尝试在 Jetty 9 上启用 gzip 压缩。我不想在我的 web.xml 中配置它,因此根据 Jetty 文档我配置了一个 override-web.xml。我不是以嵌入式模式使用 Jetty,而是将其作为容器使用。

在我的 {jetty.home}/webapps 文件夹中,我有我的 war 文件 - cc.war。我也定义了一个cc.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">

<!-- ==================================================================
Configure and deploy the test web application in $(jetty.home)/webapps/test

Note. If this file did not exist or used a context path other that /test
then the default configuration of jetty.xml would discover the test
webapplication with a WebAppDeployer. By specifying a context in this
directory, additional configuration may be specified and hot deployments
detected.
===================================================================== -->

<Configure class="org.eclipse.jetty.webapp.WebAppContext">

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Required minimal context configuration : -->
<!-- + contextPath -->
<!-- + war OR resourceBase -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<Set name="contextPath">/</Set>
<Set name="war"><Property name="jetty.webapps"/>/cc.war</Set>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Optional context configuration -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- <Set name="extractWAR">true</Set>
<Set name="copyWebDir">false</Set>
-->
<!--<Set name="defaultsDescriptor"><Property name="jetty.home" default="."/>/etc/webdefault.xml</Set>-->
<Set name="overrideDescriptor"><Property name="jetty.webapps" default="."/>/cc.d/override-web.xml</Set>
</Configure>

在文件夹 cc.d 中,我已经覆盖了 web.xml,如下所示:

<?xml version="1.0" encoding="UTF-8"?> 
<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_2_5.xsd"
version="2.5">

<filter>
<filter-name>GzipFilter</filter-name>
<filter-class>org.eclipse.jetty.servlets.GzipFilter</filter-class>
<init-param>
<param-name>methods</param-name>
<param-value>GET,POST</param-value>
</init-param>
<init-param>
<param-name>mimeTypes</param-name>
<param-value>text/html,text/xml,text/plain,text/css,text/javascript,text/json,application/x-javascript,application/javascript,application/json,application/xml,application/xml+xhtml,image/svg+xml</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>GzipFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

Jetty 似乎可以很好地加载,但 gzip 压缩并未应用于任何响应。我说 Jetty 加载得很好,因为早些时候当我试图将 override-web.xml 放入 webapps 文件夹时,Jetty 一直在提示。

我已经在 SO 上解决了各种问题,但似乎都没有答案。感谢您的帮助。

最佳答案

我认为您应该能够在 webdefault.xml 中配置常用过滤器.尝试在那里注册 Gzip 过滤器。

关于java - 如何为 Jetty 9 启用 GZIP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26001872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com