我想从servlet中读取一个文本文件,该文件使用Jersey制作并使用Gradle构建。服务器是Tomcat 9。
我的文件结构:
project
+ src
+ package
+ App.java
+ res
+ file.txt
我的build.gradle
:
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"
}
在Tomcat提取WAR之后,file.txt
与源包位于同一目录中:
WEB-INF
+ classes
+ package
+ App.class
+ file.txt
我尝试使用类加载器加载文件,但类路径似乎是Tomcat的bin
目录。我也不想硬编码路径
在这里加载文件的最佳方法是什么?
答案 0 :(得分:1)
InputStream in = package.App.class.getClassloader().getResourceAsStream("file.txt")