【WebSphere Liberty Hints & Tips】静的コンテンツを返す方法


はじめに

通常、静的コンテンツはHTTPサーバーのドキュメント・ルートで指定するディレクトリに配置することが多いと思います。何らかの事情でHTTPサーバーが前段になく、アプリケーション・サーバーから静的コンテンツも返したい時、WebSphere Libertyでの方法を記します。ここではブラウザからアクセスして、ファイルのダウンロードができるところまでを確認します。

方法

  1. 提供したい静的コンテンツ(例:html、pdf、xlsxファイルなど)をwarファイルにパッケージングします。

  2. Libertyの/dropinsフォルダに上記warファイルを配置します。ここに配置すると動的にアプリを検知し起動してくれます。

  3. 動的に検知し、アプリとして起動してきます。サーバーの再起動は不要です。

  4. 以下のようにアクセスします。warに入れていたExcelファイルがダウンロードができることがわかります。
    http://hostname:port/war-name/file-name

war名を使いたくない場合

以下のように、Libertyのルートディレクトリにwar名をつけずにファイルを置きたい場合には、サーバー構成への登録が必要になります。
http://hostname:port/file-name
ファイルはdropinsディレクトリの下ではなくappsディレクトリにおきます。その上で構成ファイルserver.xmlに以下の内容を追記します。

server.xml
<webApplication location="mytestapp.war" contextRoot="/" />

まとめ

以上で簡易的に静的コンテンツをWebSphere Libertyサーバーから返す方法を記しました。

参考

https://www.ibm.com/support/knowledgecenter/ja/SSEQTP_8.5.5/com.ibm.websphere.wlp.doc/ae/twlp_dep_war.html
https://stackoverflow.com/questions/27305207/how-do-i-display-an-html-file-using-websphere-liberty