2.104. Servlet


Servlet によって HTTP リクエストを処理します。

2.104.1. 含まれるもの

使用方法と設定の詳細は、上記リンクを参照してください。

2.104.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-servlet</artifactId>
</dependency>

2.104.3. 使用方法

2.104.3.1. Configuring CamelHttpTransportServlet

2.104.3.1.1. 最小設定

CamelHttpTransportServlet を設定する最も簡単な方法は、設定プロパティーを使用することです。最小限の設定では quarkus.camel.servlet.url-patterns を使用してサーブレットの URL パターンを 1 つ以上定義する必要があります。

たとえば、次のような設定です。

quarkus.camel.servlet.url-patterns = /*

また、以下は Camel ルートです。

from("servlet://greet")
    .setBody().constant("Hello World");

Hello World というメッセージを生成します。

2.104.3.1.2. 詳細設定

Servlet name

サーブレットに特定の名前を付けるには、quarkus.camel.servlet.servlet-name 設定オプションを使用できます。

quarkus.camel.servlet.servlet-name = My Custom Name

Servlet class

Camel ルートでカスタム Servlet クラス (例: CamelHttpTransportServlet を拡張したもの) を使用できます。

quarkus.camel.servlet.servlet-class = org.acme.MyCustomServlet

Multiple named Servlets

より高度な使用例では、複数の '名前付き' サーブレットを設定できます。

quarkus.camel.servlet.my-servlet-a.servlet-name = my-custom-a
quarkus.camel.servlet.my-servlet-a.url-patterns = /custom/a/*

quarkus.camel.servlet.my-servlet-b.servlet-name = my-custom-b
quarkus.camel.servlet.my-servlet-b.servlet-class = org.acme.CustomServletB
quarkus.camel.servlet.my-servlet-b.url-patterns = /custom/b/*
from("servlet://greet?servletName=my-custom-a")
    .setBody().constant("Hello World");

from("servlet://goodbye?servletName=my-custom-b")
    .setBody().constant("Goodbye World");

サーブレット設定のより細かい制御

たとえばカスタム初期化パラメーターを設定するなど、サーブレット設定をさらに制御する必要がある場合は、jakarta.servlet.annotation.WebServlet アノテーションオプションを使用してカスタムサーブレットクラスでこれを行うことができます。

import jakarta.servlet.annotation.WebServlet;
import org.apache.camel.component.servlet.CamelHttpTransportServlet;

@WebServlet(
    urlPatterns = {"/*"},
    initParams = {
        @WebInitParam(name = "myParam", value = "myValue")
    }
)
public class MyCustomServlet extends CamelHttpTransportServlet {
}

または、src/main/resources/META-INF/web.xml に配置された web-app 記述子を使用して CamelHttpTransportServlet を設定することもできます。

<web-app>
  <servlet>
    <servlet-name>CamelServlet</servlet-name>
    <servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>CamelServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
</web-app>

2.104.4. ネイティブモードの transferException オプション

ネイティブモードで transferException オプションを使用するには、オブジェクトのシリアル化のサポートを有効にする必要があります。詳細は、ネイティブモード のユーザーガイドを参照してください。

また、シリアル化する予定の例外クラスのシリアル化を有効にする必要があります。以下に例を示します。

@RegisterForReflection(targets = { IllegalStateException.class, MyCustomException.class }, serialization = true)

2.104.5. 追加の Camel Quarkus 設定

Expand
設定プロパティーデフォルト

quarkus.camel.servlet.url-patterns

CamelServlet にアクセスできるパスパターンのコンマ区切りリスト。パスパターンの例: /*/services/*

string のリスト

 

quarkus.camel.servlet.servlet-class

url-patterns に一致するパスを提供するサーブレットクラスの完全修飾名。

string

org.apache.camel.component.servlet.CamelHttpTransportServlet

quarkus.camel.servlet.servlet-name

web.xml ファイル、または jakarta.servlet.annotation.WebServlet#name() アノテーションで定義される servletName。

string

CamelServlet

quarkus.camel.servlet.load-on-startup

サーブレットの loadOnStartup 優先度を設定します。loadOnStartup はゼロ以上の値であり、コンテナーにサーブレットの初期化の優先順位を示します。loadOnStartup が負の整数の場合、サーブレットは遅延して初期化されます。

int

-1

quarkus.camel.servlet.async

Camel が非同期サーブレットサポートのメリットを享受できるようにします。

boolean

false

quarkus.camel.servlet.force-await

true に設定し、quarkus.camel.servlet.async = true と組み合わせて使用すると、ルート処理が同期的に実行されるようになります。

boolean

false

quarkus.camel.servlet.executor-ref

Camel Servlet 処理を行うオプションのカスタムスレッドプールを設定する Bean の名前。

string

 

quarkus.camel.servlet.multipart.location

パーツが処理されている間、またはファイルのサイズが指定されたファイルサイズしきい値設定値を超えた場合に、ファイルを一時的に保存するファイルシステム上のディレクトリーへの絶対パス。

string

${java.io.tmpdir}

quarkus.camel.servlet.multipart.max-file-size

アップロードされるファイルに許可される最大サイズ (バイト単位)。デフォルトサイズ (-1) では、サイズは無制限になります。

long

-1

quarkus.camel.servlet.multipart.max-request-size

multipart/form-data リクエストで使用できる最大サイズ (バイト単位)。デフォルトサイズ (-1) では、サイズは無制限になります。

long

-1

quarkus.camel.servlet.multipart.file-size-threshold

ファイルがディスク上に一時的に保存されるファイルサイズ (バイト単位)。

int

0

[[quarkus-camel-servlet—​named-servlets—​url-patterns]] quarkus.camel.servlet."named-servlets".url-patterns

CamelServlet にアクセスできるパスパターンのコンマ区切りリスト。パスパターンの例: /*/services/*

string のリスト

 

[[quarkus-camel-servlet—​named-servlets—​servlet-class]] quarkus.camel.servlet."named-servlets".servlet-class

url-patterns に一致するパスを提供するサーブレットクラスの完全修飾名。

string

org.apache.camel.component.servlet.CamelHttpTransportServlet

[[quarkus-camel-servlet—​named-servlets—​servlet-name]] quarkus.camel.servlet."named-servlets".servlet-name

web.xml ファイル、または jakarta.servlet.annotation.WebServlet#name() アノテーションで定義される servletName。

string

CamelServlet

[[quarkus-camel-servlet—​named-servlets—​load-on-startup]] quarkus.camel.servlet."named-servlets".load-on-startup

サーブレットの loadOnStartup 優先度を設定します。loadOnStartup はゼロ以上の値であり、コンテナーにサーブレットの初期化の優先順位を示します。loadOnStartup が負の整数の場合、サーブレットは遅延して初期化されます。

int

-1

quarkus.camel.servlet."named-servlets".async

Camel が非同期サーブレットサポートのメリットを享受できるようにします。

boolean

false

[[quarkus-camel-servlet—​named-servlets—​force-await]] quarkus.camel.servlet."named-servlets".force-await

true に設定し、quarkus.camel.servlet.async = true と組み合わせて使用すると、ルート処理が同期的に実行されるようになります。

boolean

false

[[quarkus-camel-servlet—​named-servlets—​executor-ref]] quarkus.camel.servlet."named-servlets".executor-ref

Camel Servlet 処理を行うオプションのカスタムスレッドプールを設定する Bean の名前。

string

 

[[quarkus-camel-servlet—​named-servlets—​multipart-location]] quarkus.camel.servlet."named-servlets".multipart.location

パーツが処理されている間、またはファイルのサイズが指定されたファイルサイズしきい値設定値を超えた場合に、ファイルを一時的に保存するファイルシステム上のディレクトリーへの絶対パス。

string

${java.io.tmpdir}

[[quarkus-camel-servlet—​named-servlets—​multipart-max-file-size]] quarkus.camel.servlet."named-servlets".multipart.max-file-size

アップロードされるファイルに許可される最大サイズ (バイト単位)。デフォルトサイズ (-1) では、サイズは無制限になります。

long

-1

[[quarkus-camel-servlet—​named-servlets—​multipart-max-request-size]] quarkus.camel.servlet."named-servlets".multipart.max-request-size

multipart/form-data リクエストで使用できる最大サイズ (バイト単位)。デフォルトサイズ (-1) では、サイズは無制限になります。

long

-1

[[quarkus-camel-servlet—​named-servlets—​multipart-file-size-threshold]] quarkus.camel.servlet."named-servlets".multipart.file-size-threshold

ファイルがディスク上に一時的に保存されるファイルサイズ (バイト単位)。

int

0

ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る