特定のユーザーがWebページを表示しようとすると、response.getWriter()を呼び出すと、メッセージ 'charsetName'を含むNullPointerExceptionがスローされます。私は、当社のウェブサーバのレスポンスクラス(JRunの3.1)を逆コンパイルし、それがこれを行うときに、このエラーがスローされていることがわかった:Javaサーブレット:未知のエンコーディングを処理するには?
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'。これはユーザのブラウザのようです。
これはウェブサーバーコードなので、私はここで変更することはできませんが、これでは決してこれが起こらないことを保証するために何かをすることができます。明示的にウェブサーバーに特定のエンコーディングを使用させ、要求にそれを委ねないようにすることはできますか?