Обслуживание статического содержимого из jar-файла с помощью Jetty?

Это должно быть довольно просто, но по какой-то причине почти все, что я пытаюсь, просто выдает ошибку «не найдено», когда я подключаю ее к веб-браузеру.

У меня есть один статический контекст, а для ResourceBase у меня есть файл: jar:/path/to/myjar!/.'... есть идеи, что мне не хватает?


person Don Werve    schedule 08.08.2009    source источник


Ответы (1)


Попробуйте загрузить ресурс из загрузчика классов следующим образом:

    ClassLoader classLoader =
                Thread.currentThread().getContextClassLoader();

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


        InputStream stream = classLoader.getResourceAsStream(name);

Ваш подход предполагает абсолютный путь, и он может быть неверным, когда сервер развернут. JAR может находиться в другом JAR (WAR) или во временном каталоге.

person ZZ Coder    schedule 08.08.2009
comment
Я могу легко изменить путь позже, я просто смотрю, смогу ли я вообще заставить это работать, и я не загружаю сервлет из JAR - только статические файлы .html. - person Don Werve; 09.08.2009
comment
Я не думаю, что ваш синтаксис правильный. Это должно быть jar:file:/path/to/my.jar!/package/file Если это в Windows, вам также может понадобиться буква диска. - person ZZ Coder; 09.08.2009