Tomcat 6 не декодирует + в пробел в значениях параметров - PullRequest
0 голосов
/ 15 февраля 2012

Мне нужно на машинах OpenSUSE 10.4, на которых запущено мое веб-приложение в Tomcat 6.0.32 (как предусмотрено в zypper), но в одном из случаев '+' в значениях параметров не декодируется в '', и я не могу понять, Зачем. Есть идеи?

Оба кота были настроены вручную, и поэтому они могут не работать с одинаковыми настройками, но я не могу вспомнить параметр, который вызвал бы такое поведение.

РЕДАКТИРОВАТЬ: Оба экземпляра используют URIEncoding = "UTF-8". Я также пытался без установки атрибута URIEncoding, но это не имеет значения в этом случае.

Ответы [ 4 ]

1 голос
/ 25 апреля 2012

В OpenSuSE 11.3 это относится конкретно к пакету tomcat6-6.0.24-5.16.1, и вы можете обойти его, опустившись до предыдущего пакета tomcat.Я столкнулся с этим с Confluence, https://jira.atlassian.com/browse/CONF-24659,, и потребовалось некоторое время, чтобы отладить.

  1. понижение кота:

    zypper install --force tomcat6-6.0.24-5.14.1.noarch
    
  2. Добавить блокировку пакета в online_updates не применять перенаправленный пакет

    zypper addlock tomcat6

1 голос
/ 10 апреля 2012

Вероятно, это проблема конкретной сборки Tomcat на OpenSuSE.Я использую OpenSuSE 11.4 и у меня точно такая же проблема.Простое обновление YaST исправило это.

Версия Tomcat с ошибкой: tomcat6-6.0.32-7.12.1.noarch (действительно tomcat6 - * - 6.0.32-7.12.1.noarch)

Версия, которая работала: tomcat6-6.0.32-7.14.1.noarch

1 голос
/ 15 февраля 2012

Это может быть проблема с кодировкой.

Попробуйте добавить кодировку UTF-8 в коннектор [TOMCAT_HOME] /home/server.xml:

например:

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

Надеюсь, это поможет.

0 голосов
/ 11 апреля 2012

У меня точно такая же проблема на некоторых серверах OpenSuSE 11.3 под управлением tomcat6-6.0.24-5.16.1.Мои страницы кодируются в соответствии со стандартом ISO-8859-1.

Во всяком случае, я провел некоторое тестирование и заметил, что если параметры, которые я отправляю в моей тестовой форме, содержат не-ascii символы, такие как шведский язык ÅÄÖ или долларили в процентах, параметр закодирован / декодирован правильно.Но если значение параметра содержит только обычные символы ASCII, такие как «Это отстой», кодирование / декодирование не запускается, оставляя пробелы как +.

Проблема не существует, если форма имеетenctype multipart / form-data.

Редактировать:

Я могу убедиться, что обновление Tomcat работает.Я обновился до tomcat6-6.0.35-42.2.noarch.

...