我已经使用了Jetty网络应用程序,它的构建类似于以下示例:https://github.com/jetty-project/embedded-jetty-live-war
我正在尝试使用SerletContext
访问资源文件:
ServletContext ctx = ...;
InputStream stream = ctx.getResourceAsStream("/WEB-INF/classes/jdbc.properties");
但是我得到null
而不是输入流。
我检查了该文件是否可以在最终战争档案中访问:
$ cd ./livewar-assembly/target/
$ unzip livewar-assembly-1.0-SNAPSHOT.war
$ find . -type f -name jdbc.properties
./WEB-INF/classes/jdbc.properties
我正在使用以下代码创建服务器:
final Server server = new Server(port);
final WebAppContext webapp = new WebAppContext();
final Configuration.ClassList classes = Configuration.ClassList
.setServerDefault(server);
classes.addBefore(
"org.eclipse.jetty.webapp.JettyWebXmlConfiguration",
"org.eclipse.jetty.annotations.AnnotationConfiguration"
);
webapp.setContextPath("/");
webapp.setWar(WAR.toString());
server.setHandler(webapp);
为什么我不能访问资源文件,该如何解决?