月間18,000PV達成! 収益は毎日発生中! 記事は毎日更新中! 今は農作業中のため東京にいるよ! ギランバレー症候群に関する情報を集めています

【jsp】getoutputstreamのファイルダウンロードエラーについて

  • 2018.07.06
  • IT
【jsp】getoutputstreamのファイルダウンロードエラーについて
Advertisement

 

ファイルのダウロード処理を行う際に使用する「getoutputstream()」。

この「getoutputstream()」ですが、なぜかコンソール上にエラーが発生してしまうことがありました。

エラーの内容は、「このレスポンスに対して既に呼び出されています」です。

エラーがコンソール上に出てはいるものの、ファイルはダウンロードされるので特に問題はなさそうですが、エラーが出力されるのはやはり気に食わない。

ということで色々調べてみたものの、どれもうまくいきませんでした。そこで、色々試してみた結果解決できたので、その方法をご紹介しておきます。

 

 

getoutputstreamのエラーについて

先ほども触れましたが、「getoutputstream()」を使用してエラーが出た際の内容は、

「このレスポンスに対して既に呼び出されています」

です。

エラーの内容からして、何かのclose漏れか何かかと思いましたが、僕のソースコードは間違いなくclose処理を書いています。

ですので、それ以外の何かでエラーが出力されてしまっているということになります。

 

以下が僕が書いたソースコードです。

 

 

エラーの原因は?

エラーの原因は「これ!」というものがありません。が、以下の記述がある場合は疑ってみると良いでしょう。

・余計な改行

・余計なコメント

 

 

Advertisement

 

エラーの解決方法!

先ほどの僕のソースコードは何が問題だったかと言うと、これです。

<!-- ============================================================ -->
<!-- 帳票用画面 -->
<!-- -->
<!-- 改訂履歴 -->
<!-- 2018/04/26 [0.0.1] K.Izumi Create -->
<!-- -->
<!-- @version 0.0.1 -->
<!-- @auther K.Izumi Create -->
<!-- ============================================================ -->

 

先頭行に記載しているファイルのコメントが邪魔していました。

他の解決方法でスクリプトレットや改行が怪しいという記述を見て、もしやと思いコメントを消したらエラーが出力されなくなりました。

「このレスポンスに対して既に呼び出されています」って関係ないやん。。

 

 

まとめ

「getoutputstream」に関するエラーは非常に分かりにくいです。

エラーの内容とは関係なく、改行やコメントが悪さをしていることが多いので解決するのも一苦労です。

エラーがどうしても出力されてしまう場合は、コメントなどをガンガン削除して、ひたすらデバックするなりした方が早いような気がします。

ではまた!

Travelerを知らないの?