2017-09-20 20 views
0

Jerseyを使用して作成され、Gradleを使用して構築されたサーブレットからテキストファイルを読みたいとします。サーバーは、Tomcat 9ですサーブレットからリソースファイルを読み取る

マイファイル構造:

project 
    + src 
     + package 
      + App.java 
    + res 
     + file.txt 

マイbuild.gradle

TomcatがWARを抽出した後
apply plugin: "java" 
apply plugin: "war" 

project.webAppDirName = "WebContent" 

sourceSets { 
    main { 
     java { 
      srcDirs = ["src"] 
     } 
     resources { 
      srcDirs = ["res"] 
     } 
    } 
} 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile "org.glassfish.jersey.containers:jersey-container-servlet:2.25.1" 
} 

war { 
    archiveName "api.war" 
} 

file.txtはソースパッケージと同じディレクトリにあります。

WEB-INF 
    + classes 
     + package 
      + App.class 
     + file.txt 

クラスローダーbを使用してファイルをロードしようとしました。このクラスパスは、Tomcatのbinディレクトリと思われます。私はまた、パスをハードコードしたくありません。
ここにファイルをロードする最も良い方法は何ですか?

答えて

1
InputStream in = package.App.class.getClassloader().getResourceAsStream("file.txt") 
関連する問題