Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 13

Вывод на экран списка имен файлов в каталоге модуля с использованием Spring beans

13.07.2016, 21:21. Показов 1066. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, ребята! Я пробую разобраться в принципах работы Spring-a... По заданию нужно реализовать вывод на экран список содержимого каталога ресурсов каждого модуля (их четыре). Создала maven-проект, в pom.xml добавила зависимости
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 <groupId>developer-remarks</groupId>
    <artifactId>hibernate-entities</artifactId>
    <version>1.0-SNAPSHOT</version>
 
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>developer-remarks</groupId>
            <artifactId>hibernate-entities</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>
Установила зависимости модулей.
Есть два бина (в разных модулях) и два класса:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class BaseLauncher {
    static ArrayList<File> listWithFileNames = new ArrayList<File>();
    public static void main(String[] args) {
        getListFiles("C:\\Users\\User\\IdeaProjects\\hibernate-entities\\base\\src\\main\\resource");
        for (File fil : listWithFileNames) {
            System.out.println(fil.getName());
        }
    }
    public static void getListFiles(String str) {
        File f = new File(str);
        for (File s : f.listFiles()) {
            if (s.isFile()) {
               listWithFileNames.add(s);
            } else if (s.isDirectory()) {
                getListFiles(s.getAbsolutePath());
            }
        }
    }
}
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
 
    <bean id="beanBase" class="main.java.ru.springtest.BaseLauncher">
        <!-- collaborators and configuration for this bean go here -->
    </bean>
 
    <!-- more bean definitions go here -->
 
</beans>
Java
1
2
3
4
5
6
7
public class AppLauncher {
    public static void main(String[] args) {
        ApplicationContext newApplicationContext = new ClassPathXmlApplicationContext(new String[]{"beanApp.xml","springBeanBase.xml"});
        AppLauncher appLauncher = newApplicationContext.getBean("beanApp", AppLauncher.class);
 
    }
}
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
 
    <bean id="beanApp" class="main.java.ru.springtest.AppLauncher">
        <property name="springBeanBase" ref="springBeanBase"/>
        <!-- collaborators and configuration for this bean go here -->
    </bean>
 
    <!-- more bean definitions go here -->
 
</beans>
При запуске AppLauncher.class выдается ошибка:"...at main.java.ru.springtest.AppLauncher.main (AppLauncher.java:11)
at sun.reflect.NativeMethodAccessorImpl.inv oke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.inv oke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.jav a:43)
at java.lang.reflect.Method.invoke(Method.j ava:498)
at com.intellij.rt.execution.application.Ap pMain.main(AppMain.java:144)..."
Подскажите, пожалуйста, как это исправить и в том ли направлении я двигаюсь.. Спасибо)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.07.2016, 21:21
Ответы с готовыми решениями:

Поиск и вывод имен файлов с определенными атрибутами в заданном каталоге
Здравствуйте! Дали задание: &quot;Поиск и вывод имен файлов с заданным(и) пользователем атрибутом(ами) в заданном пользователем каталоге&quot;...

Проверка наличия на диске в указанном каталоге перечисленных в списке файлов и вывод имен отсутствующих
Проверка наличия на диске в каталоге, указанном первым параметром КФ файла FNames.txt, содержащего список имен файлов и подкаталогов. Если...

Вывод списка исполняемых файлов (включая информацию о файлах) в заданном каталоге
Разработать прикладную программу, осуществляющую выявление по содержимому в заданном каталоге на диске ПК всех исполняемых файлов и вывод...

10
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
13.07.2016, 21:33
Силис, покажите полный текст ошибки? Почему вы используете xml конфигурацию в 2016 году? Что вы подразумеваете под "модулем"? Несколько проектов?
0
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 13
13.07.2016, 21:43  [ТС]
Полностью это выглядит так:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
июл 14, 2016 12:25:51 AM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@506c589e: startup date [Thu Jul 14 00:25:51 NOVT 2016]; root of context hierarchy
июл 14, 2016 12:25:51 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [beanApp.xml]
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [beanApp.xml]; nested exception is java.io.FileNotFoundException: class path resource [beanApp.xml] cannot be opened because it does not exist
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:252)
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:612)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:513)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
    at main.java.ru.springtest.AppLauncher.main(AppLauncher.java:11)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: java.io.FileNotFoundException: class path resource [beanApp.xml] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330)
    ... 18 more
В одном приложении создано несколько модулей(File->New->Module).
По уточнению про xml не совсем поняла.... Если речь о создании бинов, то я делала в том порядке как было прописано в кратеньком вводном уроке, который был дан на работе...
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
13.07.2016, 22:11
Силис,
Caused by: java.io.FileNotFoundException: class path resource [beanApp.xml] cannot be opened because it does not exist

Либо неверное имя файла, либо неверный путь

Цитата Сообщение от Силис Посмотреть сообщение
то я делала в том порядке как было прописано в кратеньком вводном уроке, который был дан на работе...
xml конфигурации уже давно устарели. Гораздо удобнее конфигурировать аннотациями и классами конфигураций.
0
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 13
13.07.2016, 22:44  [ТС]
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
Либо неверное имя файла, либо неверный путь
Попробовала изменить код в рамках одного модуля - ошибка та же...Указывает на
Code
1
ApplicationContext newApplicationContext = new ClassPathXmlApplicationContext(new String[]{"beanApp.xml","springBeanBase.xml"});
Что касается устаревших технологий... Я пока и устаревшие, оказывается, не осилила...
0
 Аватар для ninjacut
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
13.07.2016, 23:01
Ты создаешь бин AppLauncher (зачем-то) и его же пытаешься взять запуская из AppLaunchera.
Тебе нужен один бин, BaseLauncher и его ты уже будешь получать из кода в AppLauncher-е.
Если я правильно понял что ты хочешь сделать.
0
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 13
14.07.2016, 16:34  [ТС]
В последней "версии" я так и сделала, но ошибка не исправлена... Бин appLauncher убрала, через AppLauncher.class запустить бин springBeanBase.xml не получилось, результат тот же.

Добавлено через 10 часов 17 минут
Внесла некоторые изменения в классах:
Java
1
2
3
4
5
6
7
8
9
10
11
12
public class ExClass {
    protected List listSchema1() throws IOException {
        PathMatchingResourcePatternResolver resolver =
                new PathMatchingResourcePatternResolver(getClass().getClassLoader());
        Resource[] resources = resolver.getResources("*.xml");
        List list = new LinkedList();
        for (int i = 0; i < resources.length; ++i) {
            list.add(resources[i].getFile());
        }
        return list;
    }
}
Java
1
2
3
4
5
6
7
public class AppLauncher {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("beanApp.xml");
        ExClass baseLauncher = (ExClass) context.getBean("beanApp");
       // baseLauncher.getClass();
    }
}
XML
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
 
    <bean id="beanApp" class="main.java.ru.springtest.ExClass">
    </bean>
</beans>
Текст ошибки изменился:
Code
1
2
3
4
июл 14, 2016 7:31:43 PM org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@421faab1: startup date [Thu Jul 14 19:31:43 NOVT 2016]; root of context hierarchy
июл 14, 2016 7:31:43 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [beanApp.xml]
Что с этим можно сделать??Спасибо)
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
14.07.2016, 17:06
Цитата Сообщение от Силис Посмотреть сообщение
Текст ошибки изменился
где вы тут ошибку увидели?

У вас программа загружает бин и больше ничего не делает. Какой ещё результат вы ожидаете увидеть?
0
0 / 0 / 0
Регистрация: 23.04.2016
Сообщений: 13
14.07.2016, 18:57  [ТС]
Я очень надеялась увидеть список файлов... Если вернуть класс
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class BaseLauncher {
    static ArrayList<File> listWithFileNames = new ArrayList<File>();
    public static void main(String[] args) {
        getListFiles("C:\\Users\\User\\IdeaProjects\\hibernate-entities\\base\\src\\main\\resource\\base");
        for (File fil : listWithFileNames) {
            System.out.println(fil.getName());
        }
    }
 
    public static void getListFiles(String str) {
        File f = new File(str);
        for (File s : f.listFiles()) {
            if (s.isFile()) {
               listWithFileNames.add(s);
            } else if (s.isDirectory()) {
                getListFiles(s.getAbsolutePath());
            }
        }
 
    }
}
, внеся соответствующие изменения, то сообщение выдается аналогичное...
0
 Аватар для ninjacut
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
14.07.2016, 19:14
Силис, Если ты создаешь бин, например Car,
потом ты его получаешь через getBean, у тебя есть объект Car.
если у него есть какие-то методы, ты их можешь потом вызвать, они сами не вызываются.
Соответственно, в твоем случае, делаешь методы которые тебе нужно вызвать (не статические, и не main) и потом после получения бина, их вызываешь.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
14.07.2016, 19:32
Силис, вам бы хеллоу ворлды писать а не спринг копать....какая конечная цель у вас? Зачем вы полезли в спринг не зная основ программирования?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.07.2016, 19:32
Помогаю со студенческими работами здесь

Вывод списка имен всех файлов из указанного каталога
Написать программу вывода списка имен всех файлов из указанного каталога и всех вложенных в порядке возрастания или убывания размера ...

Поиск текстовых файлов в заданном каталоге и вывод на экран их имена и свойства
Помогите,пожалуйста нужно срочно для лабораторной создать программу. Программу которая ищет текстовые файлы в заданном каталоге и выводит...

Вывод списка имён каталогов и поиск в этих каталогах файлов с определёнными расширениями
Всем привет, прошу прощения , но в программировании я полный ноль, нужной мне инфы не нашел ( может плохо искал :( ). В общем задача такая,...

Вывод на экран имен всех файлов с указанным расширением
Вывод на экран имен всех файлов с указанным расширением, находящихся в каталоге, имя которого задается при запуске командного файла первым...

Работа с данными файлов Excel .xlsx. Чтение и вывод данных с использованием модуля openpyxl
Здравствуйте! Пытаюсь освоить работу чтения и записи данных в таблицы Excel, используя Python и его модуль openpyxl. При попытке записи или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru