嵌入式 Jetty 在其 Jar 文件中查找文件

发布于 2024-08-05 01:35:44 字数 98 浏览 10 评论 0原文

我成功地将 Jetty 嵌入到测试应用程序中。它可以毫无问题地提供文件。 现在我想知道 Jetty 是否可以提供其自己的 Jar 文件内的文件。

有谁知道这是否可能?

I successfully embedded Jetty on a test application. It can serve files without issues.
Now I want to know if it's possible for Jetty to serve files that are inside its own Jar file.

Does anyone know if that's possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

甜警司 2024-08-12 01:35:44

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);

An example is listed on the Jetty embedding page at http://docs.codehaus.org/display/JETTY/Embedding+Jetty

The trick is to create a File URL to your classpath location.

String webDir = this.class.getClassLoader().getResource("com/company/project/mywebdir").toExternalForm();

ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/");
context.setResourceBase(webDir);
寻找一个思念的角度 2024-08-12 01:35:44

如果将 Spring 纳入其中,这非常简单。事情就是这样:

 ...

 WebAppContext webAppContext = new WebAppContext();
 webAppContext.setServer(server);
 webAppContext.setContextPath("/");
 webAppContext.setResourceBase(new ClassPathResource("webapp").getURI().toString());

 server.addHandler(webAppContext); 

 ....

这将使 jetty 在 jar 文件中找到必要的 Web 资源。

It's pretty simple, if you throw Spring into the equation. And here it goes:

 ...

 WebAppContext webAppContext = new WebAppContext();
 webAppContext.setServer(server);
 webAppContext.setContextPath("/");
 webAppContext.setResourceBase(new ClassPathResource("webapp").getURI().toString());

 server.addHandler(webAppContext); 

 ....

That will make jetty find the necessary web resources inside the jar file.

陌路黄昏 2024-08-12 01:35:44

也许更多的是 hack,但 JAR 文件实际上不是 ZIP 吗? (不确定)您能否将它们解压缩到临时文件夹中并从那里提供它们?

Maybe more of a hack, but aren't JAR files actually ZIPs? (not sure) Could you unzip them into a temporary folder and serve them from there?

抱猫软卧 2024-08-12 01:35:44

找到答案了,不是 Jetty,而是 Winstone。 http://winstone.sf.net

Found the answer and it's not Jetty, it's Winstone. http://winstone.sf.net

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文