Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
背景
フロントエンドページのフォーム入力データが大きく、複数のテキスト、複数の画像を含み、最終的にデータが圧縮されないとアップロードに失敗します。
問題点1
バックエンドエラー報告。
IllegalStateException: マルチパートリクエストは、関連するコネクタに設定されたmaxPostSizeの制限を超えるパラメータデータ(アップロードされたファイルを含む)を含んでいました。
つまり、リクエストのデータ量が大きすぎて、最大しきい値を超えているのです。
- 解決策
修正
Spring Boot
組み込みのTomcat
maxPostsize
の値は
application.yml
の設定ファイルに、以下を追加します。
server:
tomcat:
max-http-post-size: -1
注意:以下の設定は、Tomcatのリクエストデータ制限を解決するものではありません。
spring:
servlet:
multipart:
max-file-size: 30Mb
max-request-size: 100Mb
問題点2
アプリケーションサーバーから要求されるデータが多すぎるという問題を解決した後、次のステップのDBへの書き込みで、データベースの最大許容パケット数のデフォルト値を超えてしまうという同様の問題が発生したのです。
原因:com.mysql.jdbc.PacketTooBigException.PacketTooBigExceptionが発生しました。クエリ用のパケットが大きすぎます (16800061 > 16777216)。サーバ側でmax_allowed_packet'変数を設定することで、この値を変更することができます。
- 解決策
DBの修正
max_allowed_packet
の値を指定します。
USE demo;
set global max_allowed_packet = 3*1024*1024*10; # change to 30M
show VARIABLES like '%max_allowed_packet%'; # Restart DB connection to take effect
注意事項
MySQL
で
max_allowed_packet
のデフォルトの構成は
16777216 = 16 * 1024 * 1024
であり、16M
ご不明な点、バグが見つかった場合は、お気軽にご連絡ください。
皆様のご意見・ご感想をお待ちしております。
関連
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException:5 エラー
-
Uncaught ReferenceError: は定義されていません。
-
ジャバアレイ
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
Junitのユニットテストエラー
-
テストが空であるかどうかを判断するためのオプションの処理
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ
-
javaの継承の基本的な実装
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipseは、ポップアップA Java Exception has occurred.を実行し、エラーException in threadの解決策を報告します。
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
Java の switch case 文で必要な定数式の問題の解決法
-
ブートレイヤーの初期化中にエラーが発生しました java.lang.module.FindException: モジュールが見つかりません
-
無効なメソッド宣言
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
swagger2 モデルが表示されない モデルが見つからない @ApiModel アノテーションが表示されない問題
-
Java上級(XLVI) ArrayList、Vector、LinkedListの類似点と相違点を簡単に説明できる。