BlazeDSを導入したTomcatを利用したWebアプリのルートディレクトリ絶対パスの取得方法
さて、また約一日悩んだことについて書くとでもします。
見出しの環境ではweb.xmlの内容が自分で書いたサーブレットを直接指さず、「MessageBrokerServlet」等になっているためJava側でgetServletContextを用いての絶対パス取得が出来ない。
そこで、getServletContextを使わずにルートディレクトリの絶対パスを得る方法として色々見て回って見つかったのがこちら
- あらかじめルートディレクトリ直下にtest.txtなど適当なファイルを作っておき、
- this.getClass().getResource(../.../test.txt)*1.toStringでtest.txtまでの絶対パスを取得
- 後は先頭の「file:」と末尾の「test.txt」を消してあげればOK
参考サイト:http://shiro9211.jugem.jp/?eid=442
まあ、でもスマートな方法ではないなとも思います。もしかすると他にもっと簡単な方法があるかも。
ただ、僕の場合、そもそもDBを導入するほどでない小規模なファイルの読み書きをサーバ上で行いたくて調べてたのですが、とりあえずはこれで望み通りの動きをするので、参考サイト様も言ってますが「一応」はこれを使えばOKということでw
べ、別にMySQLが使えないからこうした訳じゃないんだからねっ!//
SQL等も勉強せねばなぁ・・・
オススメの参考書や参考サイトをご存じでしたら教えて下さい。
[追記]
コメント欄でcon_mame氏(通称こんにぃ)が教えてくれたようにflex.messaging.FlexContextをインポートしてあげることでgetRealPath使えました。
ただ、このflex.messaging.FlexContextがtomcat下のlibディレクトリ中に見あたらず、サンプルのlibディレクトリから持ってくることに。
いったい大元はどこにあるの〜?