我成功地将 Jetty 嵌入到一个测试应用程序中。它可以毫无问题地提供文件。现在我想知道 Jetty 是否可以提供其自己的 Jar 文件中的文件。
有谁知道这是否可能?
我成功地将 Jetty 嵌入到一个测试应用程序中。它可以毫无问题地提供文件。现在我想知道 Jetty 是否可以提供其自己的 Jar 文件中的文件。
有谁知道这是否可能?
Jetty 嵌入页面上列出了一个示例,网址为http://docs.codehaus.org/display/JETTY/Embedding+Jetty
诀窍是为您的类路径位置创建一个文件 URL。
String webDir = this.class.getClassLoader().getResource("com/company/project/mywebdir").toExternalForm();
ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/");
context.setResourceBase(webDir);
这很简单,如果你把 Spring 加入等式。就这样:
... WebAppContext webAppContext = new WebAppContext(); webAppContext.setServer(服务器); webAppContext.setContextPath("/"); webAppContext.setResourceBase(new ClassPathResource("webapp").getURI().toString()); server.addHandler(webAppContext); ……
这将使码头在 jar 文件中找到必要的网络资源。
也许更多的是 hack,但 JAR 文件实际上不是 ZIP 吗?(不确定)您可以将它们解压缩到一个临时文件夹中并从那里提供它们吗?
找到了答案,不是 Jetty,而是 Winstone。http://winstone.sf.net