2.104. Servlet
Servlet によって HTTP リクエストを処理します。
2.104.1. 含まれるもの リンクのコピーリンクがクリップボードにコピーされました!
-
Servlet コンポーネント、URI 構文:
servlet:contextPath
使用方法と設定の詳細は、上記リンクを参照してください。
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 設定 リンクのコピーリンクがクリップボードにコピーされました!
| 設定プロパティー | 型 | デフォルト |
|---|---|---|
|
CamelServlet にアクセスできるパスパターンのコンマ区切りリスト。パスパターンの例: |
| |
|
|
|
|
|
|
|
|
|
サーブレットの loadOnStartup 優先度を設定します。loadOnStartup はゼロ以上の値であり、コンテナーにサーブレットの初期化の優先順位を示します。loadOnStartup が負の整数の場合、サーブレットは遅延して初期化されます。 |
|
|
|
Camel が非同期サーブレットサポートのメリットを享受できるようにします。 |
|
|
|
|
|
|
|
Camel Servlet 処理を行うオプションのカスタムスレッドプールを設定する Bean の名前。 |
| |
|
パーツが処理されている間、またはファイルのサイズが指定されたファイルサイズしきい値設定値を超えた場合に、ファイルを一時的に保存するファイルシステム上のディレクトリーへの絶対パス。 |
|
|
|
アップロードされるファイルに許可される最大サイズ (バイト単位)。デフォルトサイズ (-1) では、サイズは無制限になります。 |
|
|
|
multipart/form-data リクエストで使用できる最大サイズ (バイト単位)。デフォルトサイズ (-1) では、サイズは無制限になります。 |
|
|
|
ファイルがディスク上に一時的に保存されるファイルサイズ (バイト単位)。 |
|
|
|
[[quarkus-camel-servlet—named-servlets—url-patterns]]
CamelServlet にアクセスできるパスパターンのコンマ区切りリスト。パスパターンの例: |
| |
|
[[quarkus-camel-servlet—named-servlets—servlet-class]]
|
|
|
|
[[quarkus-camel-servlet—named-servlets—servlet-name]]
|
|
|
|
[[quarkus-camel-servlet—named-servlets—load-on-startup]] サーブレットの loadOnStartup 優先度を設定します。loadOnStartup はゼロ以上の値であり、コンテナーにサーブレットの初期化の優先順位を示します。loadOnStartup が負の整数の場合、サーブレットは遅延して初期化されます。 |
|
|
|
Camel が非同期サーブレットサポートのメリットを享受できるようにします。 |
|
|
|
[[quarkus-camel-servlet—named-servlets—force-await]]
|
|
|
|
[[quarkus-camel-servlet—named-servlets—executor-ref]] Camel Servlet 処理を行うオプションのカスタムスレッドプールを設定する Bean の名前。 |
| |
|
[[quarkus-camel-servlet—named-servlets—multipart-location]] パーツが処理されている間、またはファイルのサイズが指定されたファイルサイズしきい値設定値を超えた場合に、ファイルを一時的に保存するファイルシステム上のディレクトリーへの絶対パス。 |
|
|
|
[[quarkus-camel-servlet—named-servlets—multipart-max-file-size]] アップロードされるファイルに許可される最大サイズ (バイト単位)。デフォルトサイズ (-1) では、サイズは無制限になります。 |
|
|
|
[[quarkus-camel-servlet—named-servlets—multipart-max-request-size]] multipart/form-data リクエストで使用できる最大サイズ (バイト単位)。デフォルトサイズ (-1) では、サイズは無制限になります。 |
|
|
|
[[quarkus-camel-servlet—named-servlets—multipart-file-size-threshold]] ファイルがディスク上に一時的に保存されるファイルサイズ (バイト単位)。 |
|
|
ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。