如何使用Jetty从jar文件中提供静态内容?

7

这应该是相当简单的,但出于某种原因,我尝试的几乎所有方法在连接到Web浏览器时都会出现“未找到”错误。

我有一个单一的静态上下文,并且对于ResourceBase,我有'file:jar:/path/to/myjar!/.'... 你有什么想法我缺少了什么?

1个回答

2
尝试像这样从类加载器加载资源:
    ClassLoader classLoader =
                Thread.currentThread().getContextClassLoader();

        if (classLoader == null) {
            classLoader = getClass().getClassLoader();
        }


        InputStream stream = classLoader.getResourceAsStream(name);

您的方法假设了绝对路径,但当服务器部署时,这可能并不是正确的。JAR文件可能在另一个JAR(WAR)中或临时目录中。


我可以随时更改路径,我只是想看看是否能够让它正常工作,并且我没有从JAR加载servlet - 只有静态的.html文件。 - Don Werve
1
我认为你的语法不正确。应该是:jar:file:/path/to/my.jar!/package/file如果这是在Windows上,你可能还需要驱动器号。 - ZZ Coder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接