2016-07-28 11 views
0

私はSpring MVCを使用しています。私はMyClassのの)(メインでそれをテストするときSpring MVCファイルが見つかりません例外

@Controller 
public class MyController{ 
    @RequestMapping(value = "/url", method = RequestMethod.GET) 
    public String readFile(Locale locale, Model model) { 
    MyClass.readFile();//File not found exception 
    .... 
    } 
} 

読み取り動作しますが、私は、サーバーとの訪問でプロジェクトを実行すると:私のコントローラでは、私は、MyClassの

MyClass{ 
    public static void readFile(){ 
    File file = new FileReader("myPath/myFile.txt"); 
    ... 
    } 
    public static void main(String[] args) { 
    readFile();//No problem 
    } 
} 

コントローラから関数を呼び出し"/ url"、私はこれを持っています:

java.io.FileNotFoundException: myPath/myFile.txt (The system cannot find the path specified) 

コントローラにパスをどのように指定しますか?

ありがとうございます。

+1

おそらく、これはあなたにとって有用かもしれません。https://stackoverflow.com/questions/36371748/spring-boot-access-static-resources-missing-scr-main-resources – lenach87

答えて

0

サーバー上の作業ディレクトリとは何ですか?そのディレクトリから、ファイルへの相対パス( "myPath/myFile.txt")はサーバー上に存在しますか?

myFile.txtを読み込む必要があると仮定すると、通常はmyFile.txtがWAR内に含まれ、getResourceAsStreamで読み込まれます。

0

私はあなたが春にResourceの実装を探していると思います。 Springは、使用するリソースのタイプを決定します。たとえば、クラスパスにファイルがある場合、SpringはClasspathResourceを作成するか、FileResourceを作成するファイルを指します。あなたは春の4を使用している場合

@Value("file:///myPath/myFile.txt") 
Resource myFile; 

のようなものを試してみて、これは絶対パスではありませんので、このSpring Resourcesドキュメント

0

を見てください。プログラムは、あなたが最初のプログラムにこれを追加することができます 作業ディレクトリの下のファイル2つ目

System.out.println("Working Directory = " + 
    System.getProperty("user.dir")); 

あなたは違いが表示されますがあります。

関連する問題