1

現在、Liferay サーバーで開発しています。

[liferay-portal-6.1.10-ee-ga1 + tomcat-7.0.25]

場合によっては、ユーザーが Document-Library からファイルをダウンロードします。

次のタイプの URL を使用すると、

[$LIFERAY_HOST]/c/document_library/get_file?uuid=[$OBNOXIOUSLY_LONG_UUID]&groupId=[$MY_GROUP_ID]

ファイルのダウンロードが完了するまでに時間がかかります。

実際、ダウンロード自体に必要以上の時間がかかることはありません。しかし、対応は閉じていないようです。

ほとんどのダウンロード クライアント (Firefox、wget、wireshark など) は、応答の終了に気付かないようです。

その結果、正当な理由もなくハングアップします。

最悪なのは、私の Firefox ユーザーが、非常に小さいファイルのダウンロードに時間がかかるという印象を持っていることです (8kb の場合は 20 秒など... そうです、それは受け入れられません)。

スタックを掘り下げて、liferay のソースを調べてみましたが、そのレイテンシがどこから来ているのかわかりません。

私はこのスレッドの方法を調べようとしました(これは本当に有望に見えました) https://www.liferay.com/community/forums/-/message_boards/message/11838689

しかし、これは私の問題には当てはまりませんでした。すべてのフィルター クラスにログ メッセージを吐き出すように強制しましたが、それらはすべて数ミリ秒 (最大で 1 秒) で実行されるようです。

httpservletrequest の出力ストリームのフラッシュとクローズを検査しようとしましたが、それらはすべて正当かつクリーンに実行されています...私は自分自身への希望と信頼を失い始めています...悲しいです、汚いと感じます、コーヒーが必要です...助けてくださいお願いします!

----編集:回答----

実際、私の問題は GZip フィルターに関連していました (最初の試行では見つけられませんでした。私の正確なバージョンでは、rp の答えは実際の解決策ではありませんが、多くの近いバージョンにあります。同じ問題、rp の回答 (下) または this のいずれかを参照してください。

www.liferay.com/community/forums/-/message_boards/message/21186157#_19_message_21215343

4

1 に答える 1

1

残念ながら、これは Liferay の問題です。Liferay バグ トラッカーを検索すると、LPS-29323の説明があなたのものと一致することがわかりました。

幸いなことに、修正は簡単なようです。

問題を修正するプル リクエストを表示するか、これらの行をWEB-INF\liferay-web.xml

<filter-mapping>
    <filter-name>ETag Filter</filter-name>
    <url-pattern>^(/c/document_library/get_file|/c/message_boards/get_message_attachment|/c/wiki/get_page_attachment)(\?.*)?$</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
</filter-mapping>
于 2013-02-04T18:14:53.457 に答える