クラス HttpRequestHandlingEndpointSupport
- 実装済みのインターフェース一覧:
Aware, BeanFactoryAware, BeanNameAware, DisposableBean, InitializingBean, ApplicationContextAware, Lifecycle, Phased, SmartLifecycle, ComponentSourceAware, ExpressionCapable, OrderlyShutdownCapable, IntegrationPattern, NamedComponent, IntegrationInboundManagement, IntegrationManagement, ManageableLifecycle, ManageableSmartLifecycle, TrackableComponent
デフォルトでは、GET リクエストと POST リクエストは、提供されている RequestMapping のデフォルトインスタンスを介して受け入れられます。GET リクエストは 'parameterMap' を含むペイロードを生成し、POST リクエストは登録されている HttpMessageConverter に従ってメッセージペイロードに変換されます。デフォルトで登録されている HttpMessageConverter はいくつかありますが、setMessageConverters(List) を介して明示的にリストを設定することもできます。
リクエストヘッダーから MessageHeaders へのマッピングをカスタマイズするには、BaseHttpInboundEndpoint.setHeaderMapper(org.springframework.integration.mapping.HeaderMapper) メソッドへの org.springframework.integration.mapping.HeaderMapper<HttpHeaders> 実装への参照を提供します。
デフォルトでは、動作は「リクエスト / レスポンス」です。sendAndReceive ではなく送信のみを強制するには、コンストラクターに false を渡します。送信のみとは、メッセージが作成されて request channel に渡されるとすぐにレスポンスが生成されることを意味します。サブクラスは、そのレスポンスの生成方法 (単純なステータスレスポンスやビューのレンダリングなど) を決定します。
リクエスト / レスポンスシナリオでは、デフォルトでは、レスポンスメッセージのペイロードがレスポンスの生成前に抽出されます。直列化されたメッセージ全体をレスポンスに使用できるようにするには、extractReplyPayload 値を false に切り替えます。
- 導入:
- 2.0
- 作成者:
- Mark Fisher, Oleg Zhurakousky, Gary Russell, Artem Bilan, Biju Kunjummen, Trung Pham, Jooyoung Pyoung
ネストされたクラスの概要
クラス MessagingGatewaySupport から継承されたネストクラス / インターフェース
MessagingGatewaySupport.ConvertingMessagingTemplateインターフェース IntegrationManagement から継承されたネストクラス / インターフェース
IntegrationManagement.ManagementOverridesフィールド概要
クラス BaseHttpInboundEndpoint から継承されたフィールド
activeCount, JAXB_PRESENT, NON_READABLE_BODY_HTTP_METHODS, ROME_TOOLS_PRESENTクラス MessagingGatewaySupport から継承されたフィールド
messagingTemplateクラス AbstractEndpoint から継承されたフィールド
lifecycleLockクラス IntegrationObjectSupport から継承されたフィールド
EXPRESSION_PARSER, loggerインターフェース IntegrationManagement から継承されたフィールド
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAMEインターフェース SmartLifecycle から継承されたフィールド
DEFAULT_PHASEコンストラクター概要
コンストラクターコンストラクター説明replyTimeoutの応答を待つゲートウェイを構築します。タイムアウトを超えると、「500 内部サーバーエラー」ステータスコードが返されます。HttpRequestHandlingEndpointSupport(boolean expectReply) ゲートウェイを構築します。方法の概要
修飾子と型メソッド説明protected final @Nullable Message<?> doHandleRequest(HttpServletRequestEE servletRequest, RequestEntity<?> httpEntity) メッセージを生成してリクエストチャネルに送信することにより、HTTP リクエストを処理します。protected ObjectSEprotected ListSE<HttpMessageConverter<?>> protected voidonInit()可能な場合は、DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME定数で定義されたデフォルト名に基づいてMultipartResolverBean を見つけます。protected ServletServerHttpRequestprepareRequest(HttpServletRequestEE servletRequest) 未加工のHttpServletRequestEE からServletServerHttpRequestのインスタンスを準備します。protected RequestEntity<ObjectSE> voidsetMergeWithDefaultConverters(boolean mergeWithDefaultConverters) カスタムコンバーターの後にデフォルトコンバーターを使用できるかどうかを決定するフラグ。voidsetMessageConverters(ListSE<HttpMessageConverter<?>> messageConverters) 使用するメッセージ本文コンバーターを設定します。voidsetMultipartResolver(MultipartResolver multipartResolver) リクエストのチェックに使用するMultipartResolverを指定します。protected voidsetStatusCodeIfNeeded(ServerHttpResponse response, HttpEntity<?> httpEntity) protected final ObjectSEsetupResponseAndConvertReply(ServletServerHttpResponse response, Message<?> replyMessage) 応答メッセージを適切な HTTP 応答オブジェクトに変換し、ServletServerHttpResponseを設定します。クラス BaseHttpInboundEndpoint から継承されたメソッド
afterShutdown, beforeShutdown, createEvaluationContext, evaluateHttpStatus, getComponentType, getCrossOrigin, getExtractReplyPayload, getHeaderExpressions, getHeaderMapper, getIntegrationPatternType, getPayloadExpression, getRequestMapping, getRequestPayloadType, getStatusCodeExpression, getValidator, isExpectReply, isReadable, resolveHttpStatusFromHeaders, setCrossOrigin, setExtractReplyPayload, setHeaderExpressions, setHeaderMapper, setPayloadExpression, setRequestMapping, setRequestPayloadType, setRequestPayloadTypeClass, setStatusCodeExpression, setStatusCodeExpressionString, setValidator, validateクラス MessagingGatewaySupport から継承されたメソッド
buildErrorMessage, buildSendTimer, destroy, doStart, doStop, getErrorChannel, getErrorMessageAttributes, getErrorMessageStrategy, getManagedName, getManagedType, getOverrides, getReplyChannel, getRequestChannel, getRequestChannelName, isLoggingEnabled, isObserved, receive, receive, receiveMessage, receiveMessage, registerMetricsCaptor, registerObservationRegistry, registerReplyMessageCorrelatorIfNecessary, send, sendAndReceive, sendAndReceiveMessage, sendAndReceiveMessageReactive, sendTimer, setErrorChannel, setErrorChannelName, setErrorMessageStrategy, setErrorOnTimeout, setLoggingEnabled, setManagedName, setManagedType, setObservationConvention, setReceiverObservationConvention, setReplyChannel, setReplyChannelName, setReplyMapper, setReplyTimeout, setRequestChannel, setRequestChannelName, setRequestMapper, setRequestTimeout, setShouldTrackクラス AbstractEndpoint から継承されたメソッド
doStop, getPhase, getRole, isActive, isAutoStartup, isRunning, setAutoStartup, setPhase, setRole, start, stop, stopクラス IntegrationObjectSupport から継承されたメソッド
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toStringクラス ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSEインターフェース IntegrationManagement から継承されたメソッド
getThisAsインターフェース NamedComponent から継承されたメソッド
getBeanName, getComponentNameインターフェース SmartLifecycle から継承されたメソッド
isPauseable
コンストラクターの詳細
HttpRequestHandlingEndpointSupport
public HttpRequestHandlingEndpointSupport()replyTimeoutの応答を待つゲートウェイを構築します。タイムアウトを超えると、「500 内部サーバーエラー」ステータスコードが返されます。これはstatusCodeExpressionを使用して変更できます。- 関連事項:
HttpRequestHandlingEndpointSupport
public HttpRequestHandlingEndpointSupport(boolean expectReply) ゲートウェイを構築します。'expectReply' がtrueの場合、replyTimeoutからの応答を待機します。タイムアウトを超えると、'500 内部サーバーエラー ' ステータスコードが返されます。これはstatusCodeExpressionで変更できます。'false' の場合、200 OK ステータスが返されます。これもstatusCodeExpressionで変更できます。- パラメーター:
expectReply- ダウンストリームフローからの応答が予期される場合は true。- 関連事項:
方法の詳細
setMessageConverters
使用するメッセージ本文コンバーターを設定します。これらのコンバーターは、HTTP リクエストおよび HTTP リクエストとレスポンスの変換に使用されます。- パラメーター:
messageConverters- メッセージコンバーター。
getMessageConverters
setMergeWithDefaultConverters
public void setMergeWithDefaultConverters(boolean mergeWithDefaultConverters) カスタムコンバーターの後にデフォルトコンバーターを使用できるかどうかを決定するフラグ。- パラメーター:
mergeWithDefaultConverters- マージする場合は true、置き換える場合は false。
setMultipartResolver
リクエストをチェックするときに使用するMultipartResolverを指定します。リゾルバーが指定されていない場合は、コンテキスト内の "multipartResolver" Bean がフォールバックとして使用されます。これも利用できない場合は、このエンドポイントはマルチパートリクエストをサポートしません。- パラメーター:
multipartResolver- マルチパートリゾルバー。
onInit
protected void onInit()可能な場合は、DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME定数で定義されたデフォルト名に基づいてMultipartResolverBean を見つけます。コンバーターが設定されていない場合、またはコンバーターが設定された後にsetMergeWithDefaultConverters(boolean)が true で呼び出された場合、デフォルトのコンバーターをセットアップします。- オーバーライド:
- クラス
BaseHttpInboundEndpointのonInit
doHandleRequest
protected final @Nullable Message<?> doHandleRequest(HttpServletRequestEE servletRequest, RequestEntity<?> httpEntity) メッセージを生成し、それをリクエストチャネルに送信することで、HTTP リクエストを処理します。このゲートウェイの 'expectReply' プロパティが true の場合、受信するとレスポンスメッセージからのレスポンスも生成されます。- パラメーター:
servletRequest- サーブレットのリクエスト。httpEntity- 使用するリクエストエンティティ。- 戻り値:
- レスポンスメッセージ。
setupResponseAndConvertReply
protected final ObjectSE setupResponseAndConvertReply(ServletServerHttpResponse response, Message<?> replyMessage) 応答メッセージを適切な HTTP 応答オブジェクトに変換し、ServletServerHttpResponseを設定します。- パラメーター:
response- ServletServerHttpResponse。replyMessage- 返信メッセージ。- 戻り値:
- メッセージペイロード(
extractReplyPayloadの場合)、それ以外の場合はメッセージ。
setStatusCodeIfNeeded
prepareRequest
未加工のHttpServletRequestEE からServletServerHttpRequestのインスタンスを準備します。また、リクエストをマルチパートリクエストに変換して、必要に応じてマルチパートを利用できるようにします。マルチパートリゾルバーが設定されていない場合は、単に既存のリクエストを返します。- パラメーター:
servletRequest- 現在の HTTP リクエスト- 戻り値:
- 処理されたリクエスト (必要に応じてマルチパートラッパー)
- 関連事項:
prepareRequestEntity
protected RequestEntity<ObjectSE> prepareRequestEntity(ServletServerHttpRequest request) throws IOExceptionSE extractRequestBody