Я пытаюсь настроить Tomcat-Server версии 5.0.30-27.35 на Suse Linux Enterprise Server 11.2.Существует целый набор статических ресурсов, которые также должны обслуживаться этим котом.(Обновление tomcat-Server не является вариантом из-за ограничений администратора в этих системах.) Проблема в том, что некоторые файлы имеют имена файлов со специальными символами, и эти файлы не доставляются Tomcat-Server - например, я получаю HTTP 404ошибка при доступе к http://myserver/qm-iso/aä.html в браузере (wget, FF, IE, Chrome).(файл /qm-iso/aä.html существует)
Мои настройки:
Для Linux-сервера установлен UTF-8.
Tomcat запускается с JAVA_OPTS -Dfile.encoding = UTF8.
Для Tomcat-HTTP-Connector установлено значение URIEncoding = "UTF-8" <connector ... URIEncoding="UTF-8">
в файле server.xml.
Сервлет по умолчанию имеет файл init-paramEncoding в web.xml
<init-param><param-name>fileEncoding</param-name><param-value>UTF-8</param-value></init-param>
Я установил Test-JSP, который печатает <%= System.getProperty("file.encoding") %>
и <%= (new OutputStreamWriter(new ByteArrayOutputStream())).getEncoding() %>
- оба показывают UTF-8.
Я установил уровень tomcat-log для отладки и чтения этих операторов регистрации при обращении к URL http://myserver/qm-iso/aä.html
Attributes
javax.servlet.forward.request_uri : /qm-iso/a%C3%A4.html
javax.servlet.forward.context_path :
javax.servlet.forward.servlet_path : /qm-iso/aä.html
javax.servlet.forward.path_info : /error.html
javax.servlet.error.request_uri : /qm-iso/a%C3%A4.html
javax.servlet.error.servlet_name : default
javax.servlet.error.status_code : 404
javax.servlet.error.message : /qm-iso/a%C3%A4.html
Для меня это выглядит так, что logentry javax.servlet.forward.servlet_path
показывает неправильную кодировку .html.Строки с% C3% A4.html, похоже, правильно закодированы.
Есть идеи, что я мог забыть?Есть идеи, что может помочь?
Ричард