2015-09-15 2 views
0

Эта ошибка ударяет мой мозг. Все тесты junit хороши, но когда мое приложение загружается как плагин для другого приложения, у меня есть ошибки. Beans.xml 100% у корня jar-файла, но по какой-то причине основное приложение, загружающее мой плагин, не может найти файл. Зачем?Весна не может загрузить файл конфигурации xml

В методе загрузки моего приложения я называю new ClassPathXmlApplicationContext("beans.xml"); бросает

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [beans.xml]; nested exception is java.io.FileNotFoundException: class path resource [beans.xml] cannot be opened because it does not exist

или

new FileSystemXmlApplicationContext(getClass().getClassLoader().getResource("beans.xml").getPath()); бросает

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from URL [file:/C:/path/to/my.jar!/beans.xml]; nested exception is java.io.FileNotFoundException: C:\path\to\my.jar!\beans.xml (The system cannot find the path specified)


UPD: Проблема была приложение использует пользовательский загрузчик классов, который не загружает файлы ресурсов в корневом каталоге, META-INF и т.д., но только классы

+0

Что вы подразумеваете под "root of jar file", можете ли вы проверить, в каком пути он находится? –

+0

@Jama Я имею в виду, что beans.xml находится в файле jar, как и должно быть. – TeroBlaZe

ответ

1

FileNotFoundException, что вы получите действительно указывает, что файл beans.xml не находится в вашей банке в том месте, где вы думаете. Я бы посмотрел в эту банку. Вы можете, например, открыть банку with the 7-zip tool. Я нахожу, что это дает полезную информацию, когда вы получаете ошибки, подобные тем, которые вы сообщаете.

1

Если вы получаете FileNotFoundException, это потому, что файл не находится там, где вы его ищете. Файл должен быть расположен в src/main/resources

+0

Да, это есть – TeroBlaZe

Смежные вопросы