301.2. 选项
Servlet 组件支持 9 个选项,如下所列。
名称 | 描述 | 默认值 | 类型 |
---|---|---|---|
servletName (consumer) | 要使用的默认 servlet 名称。默认名称为 CamelServlet。 | CamelServlet | 字符串 |
httpRegistry (consumer) | 使用自定义 org.apache.camel.component.servlet.HttpRegistry。 | HttpRegistry | |
attachmentMultipart Binding (consumer) | 是否自动将多部分/格式数据绑定为 Camel Exchange 上的附件。选项 attachmentMultipartBinding=true 和 disableStreamCache=false 无法一起工作。删除 disableStreamCache 以使用 AttachmentMultipartBinding。默认情况下关闭此项,因为在使用 Servlet 时,这可能要求 servlet 特定的配置启用此功能。 | false | 布尔值 |
fileNameExtWhitelist (consumer) | 接受已上传文件的已接受文件名扩展名的白名单。多个扩展可以用逗号分开,如 txt,xml。 | 字符串 | |
httpBinding (advanced) | 使用自定义 HttpBinding 来控制 Camel 消息和 HttpClient 之间的映射。 | HttpBinding | |
httpConfiguration (advanced) | 将共享的 HttpConfiguration 用作基础配置。 | HttpConfiguration | |
allowJavaSerialized Object (advanced) | 当请求使用 context-type=application/x-java-serialized-object 时,是否允许 java 序列化。默认情况下是关闭的。如果启用此选项,则 Java 会将传入数据从请求反序列化到 Java,这可能会成为潜在的安全风险。 | false | 布尔值 |
headerFilterStrategy (filter) | 使用自定义 org.apache.camel.spi.HeaderFilterStrategy 过滤标头到 Camel 消息。 | HeaderFilterStrategy | |
resolveProperty Placeholders (advanced) | 启动时组件是否应解析自身上的属性占位符。只有属于 String 类型的属性才能使用属性占位符。 | true | 布尔值 |
Servlet 端点使用 URI 语法进行配置:
servlet:contextPath
使用以下路径和查询参数:
301.2.1. 路径参数(1 参数):
名称 | 描述 | 默认值 | 类型 |
---|---|---|---|
contextPath | 必需 要使用的 context-path | 字符串 |
301.2.2. 查询参数(22 参数):
名称 | 描述 | 默认值 | 类型 |
---|---|---|---|
disableStreamCache (common) | 确定来自 Servlet 的原始输入流是否被缓存(Camel 会将流读取到内存/流到文件、流缓存)缓存。默认情况下,Camel 将缓存 Servlet 输入流来支持多次读取它,以确保 Camel 可以从流检索所有数据。但是,当您需要访问原始流时,您可以将这个选项设置为 true,比如将其直接流传输到文件或其他持久性存储。DefaultHttpBinding 会将请求输入流复制到流缓存中,如果此选项为 false,则将其放入消息正文,以支持多次读取流。如果您使用 Servlet 桥接/代理,则考虑启用这个选项以提高性能,以防您不需要多次读取消息有效负载。http/http4 producer 默认将缓存响应正文流。如果将此选项设置为 true,则制作者不会缓存响应正文流,而是使用响应流作为消息正文。 | false | 布尔值 |
headerFilterStrategy (common) | 使用自定义 HeaderFilterStrategy 过滤标头到 Camel 消息。 | HeaderFilterStrategy | |
httpBinding (common) | 使用自定义 HttpBinding 来控制 Camel 消息和 HttpClient 之间的映射。 | HttpBinding | |
async (consumer) | 将消费者配置为在 async 模式中工作 | false | 布尔值 |
bridgeErrorHandler (consumer) | 允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。 | false | 布尔值 |
chunked (consumer) | 如果此选项为 false,则 Servlet 将禁用 HTTP 流并在响应中设置 content-length 标头 | true | 布尔值 |
httpMethodRestrict (consumer) | 仅用于允许 HttpMethod 匹配,如 GET/POST/PUT 等。可以使用逗号分隔多个方法。 | 字符串 | |
matchOnUriPrefix (consumer) | 如果找不到完全匹配,消费者是否应该尝试通过匹配 URI 前缀来查找目标消费者。 | false | 布尔值 |
responseBufferSize (consumer) | 要在 javax.servlet.ServletResponse 上使用自定义缓冲区大小。 | 整数 | |
servletName (consumer) | 要使用的 servlet 名称 | CamelServlet | 字符串 |
transferException (consumer) | 如果在消费者端启用并且 Exchange 失败,如果导致的 Exception 被发送序列化为 application/x-java-serialized-object 内容类型。在生成者一侧,异常将被反序列化和抛出,而不是 HttpOperationFailedException。导致异常需要被序列化。默认情况下是关闭的。如果启用此选项,则 Java 会将传入数据从请求反序列化到 Java,这可能会成为潜在的安全风险。 | false | 布尔值 |
attachmentMultipartBinding (consumer) | 是否自动将多部分/格式数据绑定为 Camel Exchange 上的附件。选项 attachmentMultipartBinding=true 和 disableStreamCache=false 无法一起工作。删除 disableStreamCache 以使用 AttachmentMultipartBinding。默认情况下关闭此项,因为在使用 Servlet 时,这可能要求 servlet 特定的配置启用此功能。 | false | 布尔值 |
eagerCheckContentAvailable (consumer) | 是否要求检查 HTTP 请求是否有 content-length 标头是否为 0。如果 HTTP 客户端没有发送流数据,则可以打开它。 | false | 布尔值 |
exceptionHandler (consumer) | 要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。 | ExceptionHandler | |
exchangePattern (consumer) | 在消费者创建交换时设置交换模式。 | ExchangePattern | |
fileNameExtWhitelist (consumer) | 接受已上传文件的已接受文件名扩展名的白名单。多个扩展可以用逗号分开,如 txt,xml。 | 字符串 | |
optionsEnabled (consumer) | 指定是否为此 Servlet 使用者启用 HTTP OPTIONS。默认情况下关闭 OPTIONS。 | false | 布尔值 |
traceEnabled (consumer) | 指定是否为此 Servlet 使用者启用 HTTP TRACE。默认情况下关闭 TRACE。 | false | 布尔值 |
mapHttpMessageBody (advanced) | 如果此选项为 true,则交换的 IN Exchange Body 将映射到 HTTP 正文。把它设置为 false 将避免 HTTP 映射。 | true | 布尔值 |
mapHttpMessageFormUrl EncodedBody (advanced) | 如果此选项为 true,则交换的 IN exchange Form Encoded body 将映射到 HTTP。把它设置为 false 将避免 HTTP Form Encoded body 映射。 | true | 布尔值 |
mapHttpMessageHeaders (advanced) | 如果此选项为 true,则交换的 IN Exchange Headers 将映射到 HTTP 标头。把它设置为 false 将避免 HTTP 标头映射。 | true | 布尔值 |
同步 (advanced) | 设置是否应严格使用同步处理,或者 Camel 允许使用异步处理(如果受支持)。 | false | 布尔值 |