Kapplet操作時にエラーメッセージのポップアップが表示される

フォローする

発生バージョン・改修ID・修正バージョン

発生Ver 改修ID 修正Ver
Kapplet 11.1
Kapplet 11.3
Kapplet 11.4
2162649  

 

事象

Kappletを操作してKappletsやテンプレート画面を表示すると、”HTTPステータス 400 – Bad Request”のエラーメッセージが記載されたポップアップが表示されます。
このポップアップが表示されると読込不全となり、kappletやテンプレート、ロボットが選択できなくなります。

 

エラーメッセージ

以下、エラーメッセージ例となります。

<!doctype html><html lang="ja"><head><title>HTTPステータス 400 – Bad Request</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTPステータス 400 – Bad Request</h1><hr class="line" /><p><b>タイプ</b> 例外報告</p><p><b>メッセージ</b> リクエストヘッダが長すぎます</p><p><b>説明</b> サーバは、クライアントエラー(例えば、不正なリクエスト構文、無効なリクエストメッセージフレーミング、または不正なリクエストルーティング)であると考えられるために、リクエストを処理できない、または処理しません。</p><p><b>例外</b></p><pre>java.lang.IllegalArgumentException: リクエストヘッダが長すぎます org.apache.coyote.http11.Http11InputBuffer.parseHeaders(Http11InputBuffer.java:618) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:524) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Unknown Source) </pre><p><b>注意</b> 原因のすべてのスタックトレースは、サーバのログに記録されています</p><hr class="line" /><h3>Apache Tomcat/8.5.55</h3></body></html>

無題.png

 

原因

Kappletから送信される情報(リクエスト)には選択中のワークスペースの情報が全て連結してつながっているため、
ワークスペースの数が多いと「java.lang.IllegalArgumentException: リクエストヘッダが長すぎます」というエラーメッセージが表示されます。

 

発生条件

  • ワークスペースの数がとても多い
  • Kappletやテンプレートの右側にある設定項目で多くのワークスペースにチェックが付いている

※ワークスペース名がマルチバイトかどうかや名前の文字数、その他リクエストの情報で変化するため、具体的な数は割り出せません。事例としては、200個ほどのワークスペースで発生しております。
無題1.png

対処方法

  1. リクエストの最大サイズを増やす方法

    以下のserver.xmlのファイルを編集していただき、ご利用中の設定箇所にて 「maxHttpHeaderSize="65536"」を追加してください。
    その後、Tomcatを再起動してください。
    ※maxHttpHeaderSizeの値を増やすことで対応は可能ですが、発生条件にも記載したような理由から適性値はございません。

    フォルダパス
    {Tomcatインストールフォルダ}/conf/server.xml

    例:Tomcat構築手順で設定した箇所にmaxHttpHeaderSizeを64MBとして追加した場合
    ※TLS/SSL化した場合は別の該当箇所となります。
    <Connector port="8080" protocol="HTTP/1.1"

     connectionTimeout="20000"

     redirectPort="8443"

     maxPostSize="10485760"

     maxParameterCount="50000"

     maxHttpHeaderSize="65536"

    />

     

  2. ワークスペースのチェックを減らす方法

    ワークスペースで選択しているチェックを減らしてください。
    ※こちら、最初はエラーメッセージが表示されてしまいますが、減らすことで連結している情報が減るため、エラーメッセージは表示されなくなります。

 

注意事項

  • 対処方法1を行っても利用中のネットワーク環境によっては、別のエラーメッセージが表示される可能性があります。
    理由としては、リクエスト情報が長いことやURLで使えない文字が含まれることにより、セキュリティとして弾かれる可能性があるためです。
    この場合は対処方法2かネットワーク管理者にてご対応頂くようにお願いいたします。

    例:ERROR: The requested URL could not be retrieved