- - PR -
WARでの絶対パス取得について
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2003-02-21 16:38
いつもお世話になっております。
もんもと申します。 私は現在、サーブレットの開発をおります。 warファイルの中のサーブレットから warの外にある設定ファイルを参照して 設定内容によってサーブレットの動作を変えたいと 思っています。 warにしたときにwarの外にあるファイルを参照する方法を ご存知ないでしょうか? またはwarファイルのローカルの絶対パスを 知ることはできないでしょうか? [環境] Windows2000 Weblogic7.0 [getServletPathの結果] HttpServletRequest#getServletPath: /servlet/sampleservlet [Weblogic7で warの中にあるファイルに対しての参照結果] ServletContext#getRealPath("/config.ini"): null ServletContext#getResource("/config.ini"): zip:C:/bea/user_projects/sample/myserver/stage/_appsdir_sample_war/sample.war!/config.ini ServletContext#getResourceAsStream("/config.ini"): java.util.zip.ZipFile$ZipFileInputStream@3b101d [Weblogic7で warの外にあるファイルに対しての参照結果] ServletContext#getRealPath("../config.ini"): null ServletContext#getResource("../config.ini"): null ServletContext#getResourceAsStream("../config.ini"): null [Weblogic7で アプリケーションルートパスを取得しようとした結果] ServletContext#getRealPath("/"): null ServletContext#getResource("/"): null ServletContext#getResourceAsStream("/"): null ※結果はprintlnで出力しています。 [TOMCAT 4.1.12での結果] ServletContext#getRealPath("/config.ini"): C:\jakarta-tomcat-4.1.12\webapps\sample\config.ini ServletContext#getResource("/config.ini"): jndi:/localhost/sample/config.ini ServletContext#getResourceAsStream("/config.ini"): java.io.ByteArrayInputStream@546dbc ServletContext#getRealPath("../config.ini"): C:\jakarta-tomcat-4.1.12\webapps\sample\..\config.ini ServletContext#getResource("../config.ini"): null ServletContext#getResourceAsStream("../config.ini"): null ServletContext#getRealPath("/"): C:\jakarta-tomcat-4.1.12\webapps\sample\ ServletContext#getResource("/"): jndi:/localhost/sample/ ServletContext#getResourceAsStream("/"): null [フォルダ構成] C:\bea\user_projects\sample\applications\sample.war C:\bea\user_projects\sample\applications\config.ini sample ├config.ini └WEB-INF ├web.xml └classes └sampleservlet.class 以上、方法をご存知の方がいらっしゃいましたら よろしくお願いいたします。 |
|
投稿日時: 2003-02-21 17:42
もんもです。
検証用に作成したサンプルです。 ------------------------------------------- import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class sampleservler extends HttpServlet { protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html; charset=Shift_JIS"); PrintWriter out = res.getWriter(); out.println("<HTML>"); out.println("<B>HttpServletRequest#getServletPath:</B>" + req.getServletPath() + "<BR>"); out.println("<BR>"); out.println("<B>/config.ini</B>" + "<BR>"); out.println("<B>getRealPath:</B>" + super.getServletContext().getRealPath("/config.ini") + "<BR>"); out.println("<B>getResource:</B>" + super.getServletContext().getResource("/config.ini") + "<BR>"); out.println("<B>getResourceAsStream:</B>" + super.getServletContext().getResourceAsStream("/config.ini") + "<BR>"); out.println("<BR>"); out.println("<B>../config.ini</B>" + "<BR>"); out.println("<B>getRealPath:</B>" + super.getServletContext().getRealPath("../config.ini") + "<BR>"); out.println("<B>getResource:</B>" + super.getServletContext().getResource("../config.ini") + "<BR>"); out.println("<B>getResourceAsStream:</B>" + super.getServletContext().getResourceAsStream("../config.ini") + "<BR>"); out.println("<BR>"); out.println("<B>/</B>" + "<BR>"); out.println("<B>getRealPath:</B>" + super.getServletContext().getRealPath("/") + "<BR>"); out.println("<B>getResource:</B>" + super.getServletContext().getResource("/") + "<BR>"); out.println("<B>getResourceAsStream:</B>" + super.getServletContext().getResourceAsStream("/") + "<BR>"); out.println("<BR>"); java.net.URL url = this.getClass().getResource("/"); String mPath = url.getFile(); out.println("<B>mPath:</B>" + mPath + "<BR>"); out.println("</HTML>"); } } |
1
