Когда определенный пользователь пытается просмотреть нашу веб-страницу, при вызове response.getWriter () выдается исключение NullPointerException с сообщением charsetName. Я декомпилировал класс ответа нашего веб-сервера (JRun 3.1) и обнаружил, что эта ошибка возникает, когда он делает следующее:
s = getCharacterEncoding(); // returns 'x-mac-roman' I believe
try
{
outWriter.exchangeWriter(new OutputStreamWriter(bufStream, s));
}
catch(UnsupportedEncodingException unsupportedencodingexception)
{
s = MIME2Java.convert(s); // looks like this returns null
outWriter.exchangeWriter(new OutputStreamWriter(bufStream, s)); // NPE!!!
}
Я наконец смог воспроизвести эту ошибку, когда заставил свой браузер отправить заголовок запроса «Accept-Charset = x-mac-roman, utf-8», что, по-видимому, и делает браузер пользователя.
Это код веб-сервера, поэтому я не могу вносить здесь какие-либо изменения, но мы можем кое-что сделать со своей стороны, чтобы этого никогда не произошло. Можем ли мы явно заставить веб-сервер использовать определенную кодировку и не оставлять это на усмотрение запросов?