2011-10-18 9 views
1

Tomcat 7のWebアプリケーションでは、servletContext.getResource("file.xml")を使用してアプリケーション内のリソースを取得します。これにより、URLはjndi:/localhost/app/file.xmlの形式で返されます。Tomcatのリソースの実際のファイルパスを取得する

しかし、私はこのファイルを実際のファイルパス(Rubyスクリプトが埋め込まれている)しか受け入れることのできないライブラリに渡す必要があるため、URLはそうしないと考えています。

実際のファイルパスを取得する方法はありますか?私はアプリケーションがWARから実行できないことを知っていますが、それは問題ありません。

答えて

0

私は非常に汚い回避策あります

 // get resource 
     URL resU = servletContext.getResource("style.less"); 

     // get scratch dir 
     File workDir = (File) servletContext.getAttribute("javax.servlet.context.tempdir"); 

     // copy resource to scratch file 
     File newFile = new File(workDir, "style.less"); 
     Files.write(Resources.toByteArray(resU), newFile); // Google Guava 

を私はいくつかのキャッシュ/チェックサムでこれをスピードアップすることができるはずですが、それはかなりありません。

関連する問題