Java エラー メソッド名に無効な文字が見つかりました。 HTTP メソッド名はトークンでなければならない

Muhammad Zeeshan 2023年10月12日
  1. Tomcat の原因: java.lang.IllegalArgumentException: メソッド名に無効な文字が見つかりました。 HTTP メソッド名はトークンでなければなりません エラー
  2. Tomcat: java.lang.IllegalArgumentException: メソッド名に無効な文字が見つかりました。 HTTP メソッド名はトークンでなければなりません エラー
Java エラー メソッド名に無効な文字が見つかりました。 HTTP メソッド名はトークンでなければならない

このチュートリアルでは、Tomcat: java.lang.IllegalArgumentException: Invalid character found in method name. HTTP メソッド名はトークンでなければなりません.

Tomcat の原因: java.lang.IllegalArgumentException: メソッド名に無効な文字が見つかりました。 HTTP メソッド名はトークンでなければなりません エラー

エラーが発生する理由として考えられるシナリオの一部を次に示します。

  1. HTTPS が有効になっていないエンドポイントでクライアントから HTTPS リクエストを実行しようとすると、ユーザーはこの例外に遭遇する可能性があります。 サーバーが生データのみに集中している場合、クライアントは要求されたデータを暗号化します。

  2. 別の言い方をすれば、これらの例外は通常、サーバーが予測するものと受信するものとの間に不一致がある場合に発生します。 考えられる多くの結果の 1つは、今説明したものです。

    サーバーのエンドポイントが HTTPS 標準に準拠していない可能性があります。

  3. 場合によっては、Content-Length ヘッダーの値が本文の長さに対応していませんでした。

  4. このエラーは、アプリケーションがデプロイされているサーバーでサポートされていない URI スキームを使用しようとした場合によく発生します。

Tomcat: java.lang.IllegalArgumentException: メソッド名に無効な文字が見つかりました。 HTTP メソッド名はトークンでなければなりません エラー

以下に、適用できる問題を解決するためのオプションを示します。

  1. クライアントの URL の httpshttp に置き換えます。 ほとんどの場合、そうすることは効果的です。 たとえば、ローカル サーバーに http://localhost:8080/foo/bar でアクセスする場合、URL https://localhost:8080/foo/bar を使用してアクセスします。

  2. Ctrl + Shift + Delete コントロールを押して閲覧データを消去し、スニペットに示すように Clear data をクリックします。

    Webブラウザの閲覧データをクリア

  1. SSL 状態 の消去 SSL 状態 は PC の Google Chrome のブラウザ設定からは削除できないため、代わりにオペレーティング システムの設定を介してこれを行う必要があります。 したがって、次の手順に従って SSL 状態 をクリアしてください。

    • スタート メニューで、インターネット オプション を検索して開きます。

    スタートメニューでインターオプションを開く

    • 表示されたダイアログ ボックスで、[コンテンツ] タブをクリックします。

    インターネットプロパティのコンテンツタブをクリック

    • SSL 状態のクリア ボタンをクリックします。

    インターネット プロパティの [コンテンツ] タブの下にある [ssl 状態のクリア] をクリックします

    • OK をクリックすると、SSL 状態がクリアされます。

    ssl キャッシュがクリアされました

  2. 証明書を必要とするアプリケーションの https プロトコルを構成します。 Let's Encrypt は、証明書を提供できるリソースです。 自己署名証明書を作成して取得するプロセスは、最も簡単なオプションです。

    • 最初にアプリケーション用の Keystore ファイルを作成します。 このファイルは、https プロトコルの自己署名証明書のように機能します。
    sudo keytool - genkey - keyalg RSA - alias tomcat - Keystore / usr / share / tomcat.keystore
    
    • 次に、Tomcat サーバー構成ファイル (/opt/tomcat/conf/server.xml) で、アプリケーション用の https Tomcat サーバー コネクタを追加します。
    sudo nano / opt / tomcat / conf / server.xml
    
    • 以下を含めて、アプリのセットアップを完了します。 Keystore ファイルの pathpassword の両方が指定されていることに注意してください。 また、http ポートとは別の https ポートが指定されています。
    <Connector protocol="org.apache.coyote.http11.Http11Protocol"
     port="8443" maxThreads="200" scheme="https"
     secure="true" SSLEnabled="true"
     keystoreFile="/usr/share/tomcat.keystore"
     keystorePass="my-password"
     clientAuth="false" sslProtocol="TLS"
     URIEncoding="UTF-8"
     compression="force"
     compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css"/>
    
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

関連記事 - Java Error