Добрый день всем.Groovy ресурс из classpath не загружен
Я использую spock framework для тестирования в моем отличном проекте (IDE - Intellij Idea 12.6). Моя спецификация Спока класс передача файла в Groovy объект для обработки (этот файл находится в пути к классам наверняка), но когда я пытаюсь получить то этот файл таким образом
def resource = getClass().getClassloader().getResourceAsStream(filepath)
assert resource != null : "No input stream found for path ${filepath}"
def rootNode = new XmlParser().parse(resource)
Тогда resource == null
.
Я пробовал отладку и в Expression Evaluation windows этот код getClass().getResource(fileName)
возвращает ресурс.
Я попытался проверить, какой класс загрузчик используется в первом случае (в классе с кодом) и во втором случае (окно оценки выражений).
В первом случае загрузчик классов был [email protected]
, но в окне оценки выражений класс classloader был [email protected]
Я полагаю, что это причина, по которой мой ресурс был нулевым.
Может ли кто-нибудь объяснить мне, что я делаю неправильно, и как я могу загрузить этот файл ресурсов?
UPDATE:
Изменен файл путь ресурс был разобран. Когда filepath
- полный путь к файлу это работает, но если filepath
только имя файл и этот файл в пути к классам затем resource == null
UPDATE2:
Измените файл путь ресурса загружен, очистить зависимости немного и все я думаю, вчера был не мой день.
Передача только имени файла работает только тогда, когда ресурс находится в том же пакете, что и класс, на который ссылается 'getClass()', и только тогда, когда используется 'Class # getResourceStream' (а не' ClassLoader # getResourceStream'). –