|
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
Исключение Autowired(required=true) Exception17.02.2020, 13:34. Показов 2353. Ответов 18
Приветствую уважаемые форумчане.
Вот читаю документацию Spring Security, и дошел читать до пункта 10.1 In-Memory Authentication https://docs.spring.io/spring-... n-inmemory Всё нормально, проблем нет. А вот чуть ниже, пункт 10.2 JDBC Authentication https://docs.spring.io/spring-... ation-jdbc для меня есть проблема. А именно: При запуске проекта получаю исключение: ИСКЛЮЧЕНИЕ: Кликните здесь для просмотра всего текста
17-Feb-2020 20:40:28.418 WARNING [RMI TCP Connection(3)-127.0.0.1] org.springframework.context.support.Abst ractApplicationContext.refresh Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.Unsati sfiedDependencyException: Error creating bean with name 'securityConfig': Unsatisfied dependency expressed through field 'dataSource'; nested exception is org.springframework.beans.factory.NoSuch BeanDefinitionException: No qualifying bean of type 'javax.sql.DataSource' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.anno tation.Autowired(required=true)}
Не могу понять почему она появляется, вроде всё норм. Мой примитивный проект выглядит следующим образом: package com.mysprinttestsecurity.config; FreeMarkerConfig.class Кликните здесь для просмотра всего текста
MessageWebApplicationInitializer.class Кликните здесь для просмотра всего текста
RootConfiguration.class Кликните здесь для просмотра всего текста
SQLConfig.class Кликните здесь для просмотра всего текста
package com.mysprinttestsecurity.controller; HomeController.class Кликните здесь для просмотра всего текста
package com.mysprinttestsecurity.dao; DaoUser.class Кликните здесь для просмотра всего текста
UserMapper.class Кликните здесь для просмотра всего текста
package com.mysprinttestsecurity.entity; User.class Кликните здесь для просмотра всего текста
package com.mysprinttestsecurity.security; MessageSecurityWebApplicationInitializer .class Кликните здесь для просмотра всего текста
SecurityConfig.class Кликните здесь для просмотра всего текста
или вот можно скачать Security.zip Помогите пожалуйста в решении данной задачи. А то встал как вкопанный. Буду очень благодарен.
0
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
| 17.02.2020, 13:34 | |
|
Ответы с готовыми решениями:
18
@Autowired null pointer exception Проверка выражения на Exception и возвращение true/false Исключение Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException |
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 17.02.2020, 16:27 | |
|
ну написано же - бина нет, значит конфиг твой не работает. Значит надо смотреть, чем он отличается от других конфигов. Например другие есть в AbstractAnnotationConfigDispatcherServle tInitializer, а этого нет.
0
|
|
|
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
|
||
| 18.02.2020, 14:27 [ТС] | ||
|
Не знаю что там надо. Блин, весь инет перерыл, и фиг знает. Вроде как должно работать, а оно не хочет почему-то.
0
|
||
|
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
|
|
| 20.02.2020, 11:24 [ТС] | |
|
Есть кто живой?
0
|
|
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
| 20.02.2020, 11:52 | |
|
попробуй клин сделать перед билдом)
0
|
|
|
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
|
||
| 20.02.2020, 16:35 [ТС] | ||
|
Добавлено через 3 часа 57 минут Кто нибудь может сделать примитивный простой рабочий пример? Только не на Spring Boot, а на Spring MVC. Добавлено через 54 секунды Только пожалуйста без ссылок, ссылками я могу сам закидать кого угодно.
0
|
||
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
| 20.02.2020, 16:46 | |
|
Favorskij, брейкпоинтом вставал в метод где твой датасурс бин инитится? там все норм?
1
|
|
|
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
|
||
| 20.02.2020, 18:52 [ТС] | ||
|
Добавлено через 2 минуты И не уменю я этими брекпоинтами пользоваться.
0
|
||
|
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
|
|
| 21.02.2020, 14:39 [ТС] | |
|
Тут люди есть? Вообще живые есть? Или этот форум уже совсем помер?
0
|
|
|
|
||||||||
| 22.02.2020, 08:54 | ||||||||
|
Favorskij, тебе дали совет
Добавлено через 2 минуты Добавлено через 19 минут Если честно, я спринг почти не знаю, но, как мне кажется, @ComponentScan должна указывать на другой пакет
1
|
||||||||
|
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
|
||||
| 22.02.2020, 13:06 [ТС] | ||||
|
Добавлено через 3 минуты Добавлено через 1 минуту Поэтому люди и приходят иногда на форумы что спросить или попросить помощи в той или иной области. Добавлено через 5 минут
0
|
||||
|
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
||||||||||||||||
| 22.02.2020, 14:12 | ||||||||||||||||
|
Favorskij, Я тоже как бы знаю только основы, потому скорее у меня вопросы а не замечания.
У вас
Может бин SQLConfig как конфигурационный и сканируется но позже, а вы его используете уже в корневой конфигурации, т.к. вам для SecurityConfig надо dataSource бин который обявляется в SQLConfig, и возможно поскольку этого бина не видно и вы импортируете класс javax.sql.DataSource который потом нигде не используете, ошибка No qualifying bean of type 'javax.sql.DataSource' available: expected at least 1 bean which qualifies as autowire candidate. как бы намекает, что где-то ожидается бин dataSource который должен быть Autowired(required=true) и в тоже время у вас javax.sql.DataSource который как бы и является кандидатом на "быть тем самым" (здесь привязка к бину происходит не по названию а по типу, а эго тип DataSource). Но это все фантазии человека который никогда не делал таких сложный конфигураций(импорт конфигураций, сэкурити и проч. у меня опыта 0!)
0
|
||||||||||||||||
|
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
|
|||||||||||||||||||||||||||
| 22.02.2020, 15:58 [ТС] | |||||||||||||||||||||||||||
|
Для чистоты, чтобы не возникало слишком много не нужных вопросов, я оставил в проекте всего 4 класса, то есть, четыре файла. И все они в одном пакете. Пакет называется com Классы MessageWebApplicationInitializer Кликните здесь для просмотра всего текста
SecurityConfig Кликните здесь для просмотра всего текста
SecurityWebApplicationInitializer Кликните здесь для просмотра всего текста
SQLConfig Кликните здесь для просмотра всего текста
Ну и конечно же pom.xml Кликните здесь для просмотра всего текста
А вот как обычно ошибка которая у меня появляется Кликните здесь для просмотра всего текста
22-Feb-2020 23:50:12.016 WARNING [RMI TCP Connection(3)-127.0.0.1] org.springframework.context.support.Abst ractApplicationContext.refresh Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.Unsati sfiedDependencyException: Error creating bean with name 'securityConfig': Unsatisfied dependency expressed through field 'dataSource'; nested exception is org.springframework.beans.factory.NoSuch BeanDefinitionException: No qualifying bean of type 'javax.sql.DataSource' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.anno tation.Autowired(required=true)}
Ну и последнее, это видео на всякий случай. Кликните здесь для просмотра всего текста
0
|
|||||||||||||||||||||||||||
|
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
|
|
| 22.02.2020, 16:10 [ТС] | |
|
На всякий случай, прикреплю ещё сам проект
ConcretePage.zip
0
|
|
|
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
|
|
| 22.02.2020, 16:32 [ТС] | |
|
Если мы посетим вот эту страничку https://docs.spring.io/spring-... spring-mvc и опустимся до пункта 16.1.1 там Spring говорит и показывает пример использования инструкций. Инструкции если ещё не использовался Spring в проекте и вторая инструкция, если Spring используется. Не совсем понимаю в моём примере какую инструкцию применить, но в любом случаи не одна и не вторая инструкция или пример не работает и в обоях случаях появляется одна и та-же ошибка.
Добавлено через 3 минуты И самое что худшее, все примеры которые я нахожу в интернете, пусть они и не совсем подходящие, ОНИ не работают у меня. И мне всегда кажется что у меня руки не из того места растут.
0
|
|
|
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
|
| 22.02.2020, 17:07 | |
Сообщение было отмечено Favorskij как решение
Решение
Favorskij, не знаю что делает
@Order, но суть вопроса, хоть проект и изменился, почти та же : может (не знаю, предполагаю) инициализация getRootConfigClasses() происходит раньше getServletConfigClasses()? Если это так, то вероятно SecurityConfig просто не может сделать Autowired еще не созданного бина dataSource в классе SQLConfig?
1
|
|
|
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
|
||
| 22.02.2020, 18:10 [ТС] | ||
|
Кликните здесь для просмотра всего текста
23-Feb-2020 01:41:21.452 WARNING [RMI TCP Connection(3)-127.0.0.1] org.springframework.context.support.Abst ractApplicationContext.refresh Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'springSecurityFilterChain' defined in org.springframework.security.config.anno tation.web.configuration.WebSecurityConf iguration: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiat ionException: Failed to instantiate [javax.servlet.Filter]: Factory method 'springSecurityFilterChain' threw exception; nested exception is org.springframework.jdbc.datasource.init .ScriptStatementFailedException: Failed to execute SQL script statement #1 of class path resource [org/springframework/security/core/userdetails/jdbc/users.ddl]: create table users(username varchar_ignorecase(50) not null primary key,password varchar_ignorecase(500) not null,enabled boolean not null); nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'varchar_ignorecase(50) not null primary key,password varchar_ignorecase(500) not' at line 1
Добавлено через 27 минут С этой ошибкой я уже завтра буду разбираться, и надеюсь завтра она решится и она-же будет последняя в этом вопросе. А пока, пока, до завтра. А то у меня уже третий час ночи.
0
|
||
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|||
| 22.02.2020, 18:12 | |||
|
Favorskij, о ты наконец то сообразил сделать то, о чем я тебе в первом же сообщении написал? ) Это определенно прогресс.
Теперь надо учиться читать, думать и гуглить. Еще, скорее всего, поможет почитать стэктрейс. Но это вообще невыполнимая задача.
1
|
|||
|
61 / 23 / 8
Регистрация: 27.07.2010
Сообщений: 496
|
||||||||||||||||||||||||||
| 23.02.2020, 11:35 [ТС] | ||||||||||||||||||||||||||
|
В общем как я понял из документации Spring Security, Spring для того примера использует HSQLDB https://docs.spring.io/spring-... dix-schema.
Далее как я понимаю Spring пытается создать таблицу users
Ну думаю Ок. Скачал я этот HSQLDB. Благо оказалось там всё просто. В общем создал я таблицу из документации Spring Security https://docs.spring.io/spring-... ser-schema, подключил к этой таблице intellij idea для пущей убедительность что она работает. Далее я изменил SQLConfig.class следующим образом: Кликните здесь для просмотра всего текста
Далее запускаю проект и получаю следующую ошибку Кликните здесь для просмотра всего текста
23-Feb-2020 17:45:33.655 WARNING [RMI TCP Connection(3)-127.0.0.1] org.springframework.context.support.Abst ractApplicationContext.refresh Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.Unsati sfiedDependencyException: Error creating bean with name 'securityConfig': Unsatisfied dependency expressed through field 'dataSource'; nested exception is org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'dataSource' defined in com.SQLConfig: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiat ionException: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [org.hsqldb.jdbc.JDBCDriver]
Из данной ошибки можно понять что - Could not load JDBC driver class [org.hsqldb.jdbcDriver], то есть, не может загрузить клас дривер. А зависимость я добавил
Все, заработало, разобрался. Заработаало. Сейчас напишу что было Добавлено через 20 минут Всем спасибо. кто принимал участие. Независимо от вероисповедания. Первое что хотелось бы отметит, почему я шел не по правильному пути, а именно, SQLConfig.class был указан не в том методе в котором он должен быть указан. Если бы он сразу был в нужном методе
Теперь по поводу последней ошибки. Да, Spring пытается создать таблицу. Но если таблица уже есть, то она не создаться, а просто вернёт ошибку. Поэтому я из папки D:\Developer\HSQL\MYDB удалял все что там есть и просто запустил, и все сработало, таблица создалась и все ок. Ещё раз всем без исключения огромное спасибо. И всех вас с праздником 23 февраля.
0
|
||||||||||||||||||||||||||
| 23.02.2020, 11:35 | |
|
Помогаю со студенческими работами здесь
19
Исключение unknown software exception 0xc0000409
исключение unknown software exception (0x0000094) в приложении по адресу Ошибка "Поле не может содержние Null, так как свойство Required имеет значение True" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|