-1

Eclipse Web 動的プロジェクトに取り組んでおり、ローカル マシン/サーバーに存在するファイルにアクセスしようとしています。

私が探しているのは、CodeIgniter の「base_url()」のようなもので、サーバーが配置されているディレクトリを自動的に指します。

私はMacを使用しています。

try{
          model.read(new FileInputStream(url),"");
      }catch(IOException e)
      {
          System.out.println("Exception caught"+e.getMessage());
      }

これは私が取り組んでいるコードの一部であり、読み取る正しい URL パスをフィードしようとしています。

StackOverflow や他の場所を検索した後、次のコードを見つけました。

String url = request.getRequestURL().toString().replace(request.getRequestURI().substring(1), request.getContextPath())
            +"/WebContent/WEB-INF/test.xml";

うまくいかなかったようです。

次に、パスディレクトリをハードコーディングしようとしましたが、Macファイルシステムがどのように機能するかがわからないことに気づきました:/

誰でもこれについていくつかの光を共有できますか?

前もって感謝します

4

3 に答える 3

0

servletまたは何か他のもの(WSなど)を使用しているかどうかはよくわかりませんでしたが、requestオブジェクトは呼び出されたメソッドを公開してgetRealPath()おり、ファイルシステム内のサーブレットのコンテキストの実際のパスを提供します。

したがって、これを使用してコードを変更する必要があります。

String url = this.getServletContext().getRealPath("")+"/test.xml";

Javaが移植可能であることは確かに知っているので、OSとは何の関係もありません。

于 2012-05-24T18:34:48.633 に答える
0

あなたが望むのは

String path = getServletContext().getRealPath("/");

サーバー内のアプリケーションのbasディレクトリを指します

e.g. /opt/tomcat/webapps/MyApp
于 2012-05-24T18:44:30.840 に答える
0

私は常に getResourceAsStream を使用し、クラスパスから吸い上げます。フラットなファイル名は、Web アプリケーション内では問題があります。

于 2012-05-24T18:47:43.863 に答える