2016-06-09 12 views
0

Итак, я работаю над базовым webapp, который использует HTML, CSS и AngularJS, и я начал добавлять функциональность с помощью Spring. Поскольку я добавил несколько JAR, я начал получать ошибку DEBUG DefaultFileSystem - Could not locate file config.xml at null: no protocol: config.xml Кажется, что он не может найти мой файл config.xml, который в настоящее время находится в src/main/resources, но я пробовал другие адреса. Где я могу установить путь, где у меня есть файл, а не null?Не удалось найти файл config.xml at null: no protocol: config.xml - как установить путь config.xml

ответ

0

Загрузка ресурсов может быть сложна в Java, ниже класс будет загружать ресурсы для вас на рабочем столе, веб-страницы, в пути к классам, или текущий рабочий каталог:

package test; 

import java.io.File; 
import java.io.IOException; 
import java.io.InputStream; 
import java.net.MalformedURLException; 
import java.net.URL; 

public class JKResourceLoader { 

    public InputStream getResourceAsStream(String resourceName) { 
     URL url = getResourceUrl(resourceName); 
     if (url != null) { 
      try { 
       return url.openStream(); 
      } catch (IOException e) { 
       throw new RuntimeException(e); 
      } 
     } 
     return null; 
    } 

    public URL getResourceUrl(String fileName) { 
     if (fileName == null) { 
      return null; 
     } 
     URL resource = getClass().getResource(fileName); 
     if (resource == null) { 
      resource = Thread.currentThread().getContextClassLoader().getResource(fileName); 
      if (resource == null) { 
       resource = ClassLoader.getSystemResource(fileName); 
       if (resource == null) { 
        File file = new File(fileName); 
        if (file.exists()) { 
         try { 
          resource = file.toURI().toURL(); 
         } catch (MalformedURLException e) { 
          throw new RuntimeException(e); 
         } 
        } 
       } 
      } 
     } 
     return resource; 
    } 
} 

Кроме того, вы можете использовать свой jk-util проект, в том числе Maven зависимость следующим образом:

<dependency> 
    <groupId>com.jalalkiswani</groupId> 
    <artifactId>jk-util</artifactId> 
    <version>0.0.9</version> 
</dependency> 

и просто вызовите следующий код:

InputStream in = JKResourceLoaderFactory.getResourceLoader().getResourceAsStream("/config.xml"); 
Смежные вопросы