【发布时间】:2010-11-30 13:57:48
【问题描述】:
我成功地将 Jetty 嵌入到一个测试应用程序中。它可以毫无问题地提供文件。 现在我想知道 Jetty 是否可以提供其自己的 Jar 文件中的文件。
有人知道这是否可能吗?
【问题讨论】:
标签: jsp jar jetty embedded-jetty embeddedwebserver
我成功地将 Jetty 嵌入到一个测试应用程序中。它可以毫无问题地提供文件。 现在我想知道 Jetty 是否可以提供其自己的 Jar 文件中的文件。
有人知道这是否可能吗?
【问题讨论】:
标签: jsp jar jetty embedded-jetty embeddedwebserver
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);
【讨论】:
request.getRequestDispatcher(...).forward(req, resp) 在 WEB-INF 下找不到 .jsp 文件,知道该怎么做吗?
如果您将 Spring 加入等式,这非常简单。就这样:
... WebAppContext webAppContext = new WebAppContext(); webAppContext.setServer(服务器); webAppContext.setContextPath("/"); webAppContext.setResourceBase(new ClassPathResource("webapp").getURI().toString()); server.addHandler(webAppContext); ……这将使jetty在jar文件中找到必要的网络资源。
【讨论】:
也许更多的是 hack,但 JAR 文件实际上不是 ZIP 吗? (不确定)您可以将它们解压缩到一个临时文件夹中并从那里提供它们吗?
【讨论】:
找到了答案,不是 Jetty,而是 Winstone。 http://winstone.sf.net
【讨论】: