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

このチュートリアルでは、Tomcat: java.lang.IllegalArgumentException: Invalid character found in method name. HTTP メソッド名はトークンでなければなりません
.
Tomcat の原因: java.lang.IllegalArgumentException: メソッド名に無効な文字が見つかりました。 HTTP メソッド名はトークンでなければなりません
エラー
エラーが発生する理由として考えられるシナリオの一部を次に示します。
-
HTTPS
が有効になっていないエンドポイントでクライアントからHTTPS
リクエストを実行しようとすると、ユーザーはこの例外に遭遇する可能性があります。 サーバーが生データのみに集中している場合、クライアントは要求されたデータを暗号化します。 -
別の言い方をすれば、これらの例外は通常、サーバーが予測するものと受信するものとの間に不一致がある場合に発生します。 考えられる多くの結果の 1つは、今説明したものです。
サーバーのエンドポイントが
HTTPS
標準に準拠していない可能性があります。 -
場合によっては、
Content-Length
ヘッダーの値が本文の長さに対応していませんでした。 -
このエラーは、アプリケーションがデプロイされているサーバーでサポートされていない
URI
スキームを使用しようとした場合によく発生します。
Tomcat: java.lang.IllegalArgumentException: メソッド名に無効な文字が見つかりました。 HTTP メソッド名はトークンでなければなりません
エラー
以下に、適用できる問題を解決するためのオプションを示します。
-
クライアントの URL の
https
をhttp
に置き換えます。 ほとんどの場合、そうすることは効果的です。 たとえば、ローカル サーバーにhttp://localhost:8080/foo/bar
でアクセスする場合、URLhttps://localhost:8080/foo/bar
を使用してアクセスします。 -
Ctrl
+Shift
+Delete
コントロールを押して閲覧データを消去し、スニペットに示すようにClear data
をクリックします。 -
SSL 状態
の消去SSL 状態
は PC の Google Chrome のブラウザ設定からは削除できないため、代わりにオペレーティング システムの設定を介してこれを行う必要があります。 したがって、次の手順に従ってSSL 状態
をクリアしてください。- スタート メニューで、
インターネット オプション
を検索して開きます。
- 表示されたダイアログ ボックスで、[コンテンツ] タブをクリックします。
- スタート メニューで、
- `SSL 状態のクリア` ボタンをクリックします。
![インターネット プロパティの [コンテンツ] タブの下にある [ssl 状態のクリア] をクリックします](</img/Java/click-clear-ssl-state-under-the-content-tab-in-internet-properties.webp>)
- `OK` をクリックすると、SSL 状態がクリアされます。

-
証明書を必要とするアプリケーションの
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
ファイルのpath
とpassword
の両方が指定されていることに注意してください。 また、http
ポートとは別のhttps
ポートが指定されています。
- 最初にアプリケーション用の
```java
<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"/>
```
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