A.4. 迁移 JBoss Web 系统属性参考


本参考描述了如何将之前用于 JBoss Web 配置的系统属性映射到 JBoss EAP 7 中对 Undertow 的等效配置。

Expand
表 A.1. 映射 Servlet 容器和连接器系统属性

JBoss EAP 6 系统属性

描述

等同于 JBoss EAP 7

jvmRoute

jvmRoute 属性提供默认值。在使用 standalone-ha.xml 配置文件时,它不会覆盖自动生成的值。

它支持 重新加载

管理 CLI 命令:

/subsystem=undertow:write-attribute(name=instance-id,value=VALUE)
Copy to Clipboard Toggle word wrap

org.apache.tomcat.util.buf.StringCache.byte.enabled

如果为 true,则会为 ByteChunk 启用字符串缓存。如果没有指定值,则使用默认值 false

没有等效的配置

org.apache.tomcat.util.buf.StringCache.char.enabled

如果为 true,则为 CharChunk 启用字符串缓存。如果没有指定值,则使用默认值 false

没有等效的配置

org.apache.tomcat.util.buf.StringCache.cacheSize

String 缓存的大小。如果没有指定值,则使用默认值 5000

没有等效的配置

org.apache.tomcat.util.buf.StringCache.maxStringSize

将要缓存的 String 的最大长度。如果没有指定值,则使用默认值 128

没有等效的配置

org.apache.tomcat.util.http.FastHttpDateFormat.CACHE_SIZE

使用已解析和格式化的日期值的缓存大小。如果没有指定值,则使用默认值 1000

没有等效的配置

org.apache.catalina.core.StandardService.DELAY_CONNECTOR_STARTUP

如果为 true,则不会自动进行连接器启动。它在嵌入式模式下很有用。

没有等效的配置

org.apache.catalina.connector.Request.SESSION_ID_CHECK

如果为 true,则 Servlet 容器会在创建带有该 ID 的会话之前验证包含指定会话 ID 的上下文中是否存在。

没有等效的配置

org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER

如果为 true,在 HTTP 标头中使用自定义 HTTP 状态信息。用户必须确保任何此类消息都是 ISO-8859-1 编码,特别是在消息中包括用户提供的输入时,以防止可能的 XSS 漏洞。如果没有指定值,则使用默认值 false

必须通过实施自定义 io.undertow.servlet.ServletExtension 来以编程方式启用。然后,使用扩展在 io.undertow.servlet.api.DeploymentInfo 结构实例上调用 setSendCustomReasonPhraseOnError(true)

org.apache.tomcat.util.http.Parameters.MAX_COUNT

可以在后正文中解析的最大参数数。如果超过,则使用 IllegalStateException 解析失败。默认值为 512 参数。

管理 CLI 命令:

/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=max-parameters,value=VALUE)
/subsystem=undertow/server=default-server/https-listener=default:write-attribute(name=max-parameters,value=VALUE)
/subsystem=undertow/server=default-server/ajp-listener=default:write-attribute(name=max-parameters,value=VALUE)
Copy to Clipboard Toggle word wrap

org.apache.tomcat.util.http.MimeHeaders.MAX_COUNT

HTTP 请求中可发送的最大标头数。如果超过,则解析将使用 IllegalStateException 会失败。默认值为 128 标头。

管理 CLI 命令:

/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=max-headers,value=VALUE)
/subsystem=undertow/server=default-server/https-listener=default:write-attribute(name=max-headers,value=VALUE)
/subsystem=undertow/server=default-server/ajp-listener=default:write-attribute(name=max-headers,value=VALUE)
Copy to Clipboard Toggle word wrap

org.apache.tomcat.util.net.MAX_THREADS

连接器将用于处理请求的最大线程数量。默认值为 32 x 512。(512 x Runtime.getRuntime().availableProcessors() 用于 JIO 连接器)

管理 CLI 命令:

/subsystem=io/worker=default:write-attribute(name=task-max-threads, value=VALUE)
Copy to Clipboard Toggle word wrap

org.apache.coyote.http11.Http11Protocol.MAX_HEADER_SIZE

HTTP 标头的最大大小,以字节为单位。如果超过了,则使用 ArrayOutOfBoundsException 会失败。默认值为 8192 字节。

管理 CLI 命令:

/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=max-header-size,value=VALUE)
/subsystem=undertow/server=default-server/https-listener=default:write-attribute(name=max-header-size,value=VALUE)
/subsystem=undertow/server=default-server/ajp-listener=default:write-attribute(name=max-header-size,value=VALUE)
Copy to Clipboard Toggle word wrap

org.apache.coyote.http11.Http11Protocol.COMPRESSION

允许通过 HTTP 连接器使用简单的压缩。默认值为 off,可以使用 上的 值启用压缩,以有条件地启用它,或强制始终启用它。

使用管理 CLI 配置过滤器:

# Create a filter
/subsystem=undertow/configuration=filter/gzip=gzipfilter:add()
/subsystem=undertow/server=default-server/host=default-host/filter-ref=gzipfilter:add()
Copy to Clipboard Toggle word wrap

org.apache.coyote.http11.Http11Protocol.COMPRESSION_RESTRICTED_UA

用户代理 regexps 将不会接收压缩内容。默认值为空。

使用管理 CLI 在过滤器中配置 predicate:

# Use a predicate in a filter
/subsystem=undertow/configuration=filter/gzip=gzipfilter:add()
/subsystem=undertow/server=default-server/host=default-host/filter-ref=gzipfilter:add(predicate="regex[pattern='AppleWebKit',value=%{i,User-Agent}]")
Copy to Clipboard Toggle word wrap

org.apache.coyote.http11.Http11Protocol.COMPRESSION_MIME_TYPES

压缩内容的内容类型前缀。默认值为 text/html,text/xml,text/plain

使用管理 CLI 在过滤器中配置 predicate:

# Use a predicate in a filter
/subsystem=undertow/configuration=filter/gzip=gzipfilter:add()
/subsystem=undertow/server=default-server/host=default-host/filter-ref=gzipfilter:add(predicate="regex[pattern='text/html',value=%{o,Content-Type}]")
Copy to Clipboard Toggle word wrap

org.apache.coyote.http11.Http11Protocol.COMPRESSION_MIN_SIZE

将压缩的最小内容大小。默认值为 2048 字节。

使用管理 CLI 在过滤器中配置 predicate:

# Use a predicate in a filter
/subsystem=undertow/configuration=filter/gzip=gzipfilter:add()
/subsystem=undertow/server=default-server/host=default-host/filter-ref=gzipfilter:add(predicate="max-content-size[value=MIN_SIZE]")
Copy to Clipboard Toggle word wrap

org.apache.coyote.http11.DEFAULT_CONNECTION_TIMEOUT

默认套接字超时。默认值为 60000 ms。

管理 CLI 命令:

/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=no-request-timeout,value=VALUE)
/subsystem=undertow/server=default-server/https-listener=default:write-attribute(name=no-request-timeout,value=VALUE)
/subsystem=undertow/server=default-server/ajp-listener=default:write-attribute(name=no-request-timeout,value=VALUE)
Copy to Clipboard Toggle word wrap

org.jboss.as.web.deployment.DELETE_WORK_DIR_ONCONTEXTDESTROY

使用此属性删除 .java.class 文件,以确保重新编译 JSP 源。默认值为 false。用于 keep-alive 的默认套接字超时。默认值为 -1 ms,这意味着它将使用默认的套接字超时。

没有等效的配置

org.apache.tomcat.util.buf.StringCache.trainThreshold

指定在激活缓存前必须调用 toString() 的次数。默认值为 100000

没有等效的配置

Expand
表 A.2. 映射 EL 系统属性

JBoss EAP 6 系统属性

描述

等同于 JBoss EAP 7

org.apache.el.parser.COERCE_TO_ZERO

根据 Expression Language(EL)2.0 规格,如果为 true,则当将表达式与非辅助数据类型、空字符串("")和 null 保持一致时,则为零。如果没有指定值,则使用默认值 true

没有等效的配置。根据 EL 3.0 规格,对于非正式数据类型,空字符串和 null 不会合并为零。

Expand
表 A.3. 映射服务器页面系统属性

JBoss EAP 6 系统属性

描述

等同于 JBoss EAP 7

org.apache.jasper.compiler.Generator.VAR_EXPRESSIONFACTORY

用于表达式语言表达式工厂的变量名称。如果没有指定值,则使用默认值 _el_expressionfactory

系统属性尚未更改

org.apache.jasper.compiler.Generator.VAR_INSTANCEMANAGER

用于实例管理器工厂的变量名称。如果没有指定值,则使用默认值 _jsp_instancemanager

系统属性尚未更改

org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING

如果为 false,则调整 JSP 属性中的转义引号的要求,以便缺少所需的引用引用不会出现错误。如果没有指定值,则使用规格合规默认值 true

系统属性尚未更改

org.apache.jasper.Constants.DEFAULT_TAG_BUFFER_SIZE

任何超过 org.apache.jasper.Constants.DEFAULT_TAG_SIZE 的标签缓冲区都会被销毁,并创建一个新的缓冲区。如果没有指定值,则使用默认值 512

系统属性尚未更改

org.apache.jasper.runtime.JspFactoryImpl.USE_POOL

如果为 true,则使用 ThreadLocal PageContext 池。如果没有指定值,则使用默认值 true

系统属性尚未更改

org.apache.jasper.runtime.JspFactoryImpl.POOL_SIZE

ThreadLocal PageContext 的大小。如果没有指定值,则使用默认值 8

系统属性尚未更改

org.apache.jasper.Constants.JSP_SERVLET_BASE

从 JSP 生成的 Servlet 基础类。如果没有指定值,则使用 org.apache.jasper.runtime.HttpJspBase 默认值。

系统属性尚未更改

org.apache.jasper.Constants.SERVICE_METHOD_NAME

基本类调用的服务方法的名称。如果没有指定值,则使用默认值 _jspService

系统属性尚未更改

org.apache.jasper.Constants.SERVLET_CLASSPATH

为 JSP 提供类路径的 ServletContext 属性的名称。如果没有指定值,则使用 org.apache.catalina.jsp_classpath 的默认值。

系统属性尚未更改

org.apache.jasper.Constants.JSP_FILE

servlet 定义的 <jsp-file> 元素的 request 属性的名称。如果请求存在,这将覆盖 request.getServletPath() 返回的值,以选择要执行的 JSP。如果没有指定值,则使用 org.apache.catalina.jsp_file 的默认值。

系统属性尚未更改

org.apache.jasper.Constants.PRECOMPILE

查询参数的名称,该名称使 JSP 引擎仅预设 servlet,但不调用它。如果没有指定值,则使用 org.apache.catalina.jsp_precompile 的默认值。

系统属性尚未更改

org.apache.jasper.Constants.JSP_PACKAGE_NAME

编译的默认 JSP 软件包名称。如果没有指定值,则使用 org.apache.jsp 的默认值。

系统属性尚未更改

org.apache.jasper.Constants.TAG_FILE_PACKAGE_NAME

从标签文件生成的标签处理程序的默认软件包名称。如果没有指定值,则使用 org.apache.jsp.tag 的默认值。

系统属性尚未更改

org.apache.jasper.Constants.TEMP_VARIABLE_NAME_PREFIX

用于生成的临时变量名称的前缀。如果没有指定值,则使用默认值 _jspx_temp

系统属性尚未更改

org.apache.jasper.Constants.USE_INSTANCE_MANAGER_FOR_TAGS

如果为 true,则使用实例管理器来获取标签处理器实例。如果没有指定值,则使用 true

系统属性尚未更改

org.apache.jasper.Constants.INJECT_TAGS

如果为 true,则标签中指定的注解将进行处理并注入。这在使用简单标签或者标签池时对性能产生影响。如果没有指定值,则使用 false

系统属性尚未更改

Expand
表 A.4. 映射安全系统属性

JBoss EAP 6 系统属性

描述

等同于 JBoss EAP 7

org.apache.catalina.connector.RECYCLE_FACADES

如果情况为 true,或者如果正在使用一个安全管理器,则会为每个请求创建一个新的 facade 对象。如果没有指定值,则使用默认值 false

没有等效的配置

org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH

如果出现这种情况 则允许 '\' 字符作为路径分隔符。如果没有指定值,则使用默认值 false

没有等效的配置

org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH

如果是 true,则允许 '%2F' 和 '%5C' 作为路径分隔符。如果没有指定值,则使用默认值 false

管理 CLI 命令:

/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=allow-encoded-slash,value=VALUE)
/subsystem=undertow/server=default-server/https-listener=default:write-attribute(name=allow-encoded-slash,value=VALUE)
/subsystem=undertow/server=default-server/ajp-listener=default:write-attribute(name=allow-encoded-slash,value=VALUE)
Copy to Clipboard Toggle word wrap

org.apache.catalina.STRICT_SERVLET_COMPLIANCE

如果没有指定值,则使用 true。如果为 true,则会发生以下操作:任何传递给应用程序分配程序的任何封装请求或响应对象会被检查,以确保其已包装原始请求或响应。(SRV.8.2 / SRV.14.2.5.1)调用 Response.getWriter() 如果没有指定字符编码会导致后续对 Response.getCharacterEncoding() 返回 ISO-8859-1 的调用,Content-Type 响应标头将包含 charset=ISO-8859-1 组件。(SRV.15.2.22.1)与会话相关联的每个请求都会导致更新会话最后一次访问的时间,无论请求是否明确访问会话。(SRV.7.6)

默认合规

org.apache.catalina.core.StandardWrapperValve.SERVLET_STATS

如果为 true,或者如果 org.apache.catalina.STRICT_SERVLET_COMPLIANCE 为 true,则打包程序会收集单个 servlet 的 JSR-77 统计信息。如果没有指定值,则使用默认值 false。此映射安全系统属性等效的 Jakarta 是 Jakarta 管理。

没有等效的配置

org.apache.catalina.session.StandardSession.ACTIVITY_CHECK

如果这是 true,或者 org.apache.catalina.STRICT_SERVLET_COMPLIANCEtrue Tomcat,跟踪每个会话的活动请求数。在决定会话是否有效时,任何至少有一个活跃请求的会话始终被视为有效。如果没有指定值,则使用默认值 false

没有等效的配置

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat