TomcatのWEBアプリ配下に配置した日本語名ファイルへのブラウザアクセス
つまり、TomcatのWEBアプリが
Test-WEB-App ┃ ┗━ PDF ┃ test.pdf ┃ あいうえお.pdf ┃ ┗━ WEB-INF ┃ ┗━ classes ┃ ┗━ lib ・ ・ ・
とかの構成で、IEから「test.pdf」に「http://XXXXX:8080/Test-WEB-App/PDF/test.pdf」でアクセスするのは問題ないんだけど、「あいうえお.pdf」に「http://XXXXX:8080/Test-WEB-App/PDF/あいうえお.pdf」でアクセスする場合です。*1
この場合、IEがURLをUTF-8でエンコーディングしている*2ので、エンコードされた「あいうえお」をTomcatが正しく解釈できずに、「404エラー」が出てしまいます。
これを回避するには、Tomcatに、URLはUTF-8で飛んできますから、ちゃんと解釈してくださいね。ということを教える必要があります。
で、ちょっとTomcatの設定を変える必要あり。
やることは、Tomcatの「conf」ディレクトリにある「server.xml」の「Connector」タグ中に「URIEncoding="UTF-8"」を追記するだけ。
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />