web-dev-qa-db-ja.com

DHIS 2 Webリクエストでは、「リクエストターゲットで無効な文字が見つかりました。有効な文字はRFC 7230およびRFC 3986で定義されています」

DHIS 2トラッカーキャプチャアプリを開くと、meリソースに対するAPリクエストにより、400クライアント側エラーが発生します。 Tomcatログを見ると、次のことがわかります。

要求ターゲットに無効な文字が見つかりました。有効な文字は、RFC 7230およびRFC 3986で定義されています

Tomcat 8.5を実行しています。この理由は何ですか?

1
lars

これは、DHIS 2が一部のURLでブラケットを使用しているため、およびTomcatバージョン8.5がURLでブラケットの使用を禁止しているために発生します。

DHIS 2チームは、ブラケットの使用を避け、すべてのAPI要求URLをエンコードするために、API構文の変更に取り組んでいます。

短期的な修正方法は、relaxedQueryCharsコネクタ属性を使用してブラケットを許可するようにTomcatを構成することです。次のファイルを開きます。

/Tomcat-dir/conf/server.xml

relaxedQueryChars="[]"をHTTPコネクター要素に追加します。

<Connector protocol="HTTP/1.1"
  port="8080" 
  relaxedQueryChars="[]" />

これにより、URL内のブラケットが許可され、DHIS 2は以前と同様に機能します。

1
lars

これは DHIS2-5081 により解決されました。今後、これはDHIS2 2.29以降では問題になりません。

古いバージョンの場合、Larsの概要に従ってTomcat構成を変更する必要があります。

1
varl