HOWTO · Java
Java-Fehler Ungültiges Zeichen im Methodennamen gefunden. HTTP-Methodennamen müssen Token sein
In dem Tutorial, das wir heute durchgehen werden, werden wir über einige der möglichen Ursachen und Lösungen der Tomcat sprechen: java.lang.IllegalArgumentException: Invalid character found in method name. HTTP-Methodennamen müssen Token sein.
Auf dieser Seite
Das Tutorial behandelt einige mögliche Ursachen und Lösungen für die Ausnahme Tomcat: java.lang.IllegalArgumentException: Invalid character found in method name. HTTP-Methodennamen müssen Token sein.
Ursachen für Tomcat: java.lang.IllegalArgumentException: Ungültiges Zeichen im Methodennamen gefunden. HTTP-Methodennamen müssen Token sein Fehler
Im Folgenden sind einige der möglichen Szenarien aufgeführt, warum der Fehler auftritt.
-
Benutzer können auf diese Ausnahme stoßen, wenn sie versuchen, eine
HTTPS-Anforderung von einem Client auf einem Endpunkt auszuführen, auf demHTTPSnicht aktiviert ist. Der Client verschlüsselt die angeforderten Daten, wenn sich der Server nur auf Rohdaten konzentriert. -
Um es anders auszudrücken, diese Ausnahmen treten typischerweise immer dann auf, wenn eine Diskrepanz zwischen dem, was der Server erwartet, und dem, was er empfängt, besteht. Eines der vielen denkbaren Ergebnisse ist das, was Sie gerade beschrieben haben.
Ihr Server verfügt möglicherweise über einen Endpunkt, der nicht den
HTTPS-Standards entspricht. -
In einigen Fällen entsprach der Wert des Headers
Content-Lengthnicht der Länge des Bodys. -
Dieser Fehler tritt häufig auf, wenn Sie versuchen, auf dem Server, auf dem die Anwendung bereitgestellt wird, ein
URI-Schema zu verwenden, das es nicht unterstützt.
Lösung von Tomcat: java.lang.IllegalArgumentException: Ungültiges Zeichen im Methodennamen gefunden. HTTP-Methodennamen müssen Token sein Fehler
Nachfolgend sind Optionen zur Lösung des Problems aufgeführt, die angewendet werden können.
-
Ersetzen Sie in der URL Ihres Clients
httpsdurchhttp. Höchstwahrscheinlich wird dies effektiv sein. Wenn Sie beispielsweise mithttp://localhost:8080/foo/barauf den lokalen Server zugreifen, verwenden Sie die URLhttps://localhost:8080/foo/bar, um darauf zuzugreifen. -
Löschen Sie die Browserdaten, indem Sie die Tasten
Strg+Umschalt+Löschendrücken und dann aufDaten löschenklicken, wie im Snippet gezeigt.
-
SSL-Statuslöschen Da derSSL-Statusnicht in den Browsereinstellungen von Google Chrome auf einem PC entfernt werden kann, muss dies stattdessen über die Einstellungen des Betriebssystems erfolgen. Befolgen Sie daher diese Anweisungen, um denSSL-Statuszu löschen.- Suchen Sie im Startmenü nach
Internetoptionenund öffnen Sie es.
- Klicken Sie im erscheinenden Dialogfenster auf die Registerkarte
Inhalt.
- Klicken Sie auf die Schaltfläche
SSL-Status löschen.
- Klicken Sie auf
OK, und der SSL-Status wird gelöscht.
- Suchen Sie im Startmenü nach
-
Konfigurieren Sie das
https-Protokoll für die Anwendung, die ein Zertifikat erfordert.Let's Encryptist eine Ressource, die Ihnen Zertifikate zur Verfügung stellen kann. Der Prozess der Erstellung und des Erwerbs eines selbstsignierten Zertifikats ist die einfachste Option.- Erstellen Sie zuerst eine
Keystore-Datei für die Anwendung. Diese Datei funktioniert eher wie ein selbstsigniertes Zertifikat für dashttps-Protokoll.
sudo keytool - genkey - keyalg RSA - alias tomcat - Keystore / usr / share / tomcat.keystore- Als nächstes fügen Sie in der Konfigurationsdatei des Tomcat-Servers (/opt/tomcat/conf/server.xml) einen Tomcat-Server-Connector
httpsfür die Anwendung hinzu:
sudo nano / opt / tomcat / conf / server.xml- Schließen Sie die Einrichtung der App ab, indem Sie Folgendes hinzufügen. Beachten Sie, dass sowohl der
Pfadals auch dasPasswortfür dieKeystore-Datei bereitgestellt werden. Außerdem wird ein vomhttp-Port getrennterhttps-Port angegeben.
<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"/> - Erstellen Sie zuerst eine