2009-08-08 2 views
7

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

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

ответ

2

Попробуйте загрузить ресурс из загрузчиков классов, как это,

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

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


     InputStream stream = classLoader.getResourceAsStream(name); 

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

+0

Я могу с легкостью изменить путь позже, я просто вижу, могу ли я заставить это работать вообще, и я не загружаю сервлет из JAR - только статических файлов .html. –

+1

Я не думаю, что ваш синтаксис прав. Должно быть, jar: файл: /path/to/my.jar!/Package/file Если это в Windows, вам может понадобиться буква диска. –