无法使用嵌入式码头访问上下文资源

时间:2019-07-08 15:57:02

标签: java servlets embedded-jetty

我已经使用了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);

为什么我不能访问资源文件,该如何解决?

0 个答案:

没有答案