Spring FileNotFoundException при доступе к файлу из другой лабораторииJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring FileNotFoundException при доступе к файлу из другой лаборатории

Сообщение Anonymous »

Я новичок и изучаю уроки Spring Academy, чтобы изучить Spring. И в настоящее время находится в Spring Essentials/Module 2/Spring Configuration Lab. И работа с лабораторным файлом «12-javaconfig-dependent-injection». Проблема, с которой я столкнулся, заключается в использовании файлов сценариев sql из общей лаборатории.
Так создается источник данных.

Код: Выделить всё

@Configuration
@Import(RewardsConfig.class)
public class TestInfrastructureConfig {

/**
* Creates an in-memory "rewards" database populated
* with test data for fast testing
*/
@Bean
public DataSource dataSource() {
return (new EmbeddedDatabaseBuilder()) //
.addScript("classpath:rewards/testdb/schema.sql") //
.addScript("classpath:rewards/testdb/data.sql") //
.build();
}
}
Это мой тестовый файл.

Код: Выделить всё

class RewardNetworkTests {

private RewardNetwork rewardNetwork;

@BeforeEach
void setUp() throws Exception {
ApplicationContext cxt = SpringApplication.run(TestInfrastructureConfig.class);
this.rewardNetwork = cxt.getBean(RewardNetwork.class);
}

@Test
void testRewardForDining() {
fail("Not yet implemented");
}

}
Schema.sql и data.sql находятся в другой лаборатории, которая называется общей лабораторией. Согласно их руководству, именно так должны работать лаборатории. Но когда я запускаю тесты, я получаю следующую ошибку.

Код: Выделить всё

Caused by: java.io.FileNotFoundException: class path resource [rewards/testdb/schema.sql] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:199) ~[spring-core-5.3.23.jar:5.3.23]
at org.springframework.core.io.support.EncodedResource.getReader(EncodedResource.java:146) ~[spring-core-5.3.23.jar:5.3.23]
at org.springframework.jdbc.datasource.init.ScriptUtils.readScript(ScriptUtils.java:328) ~[spring-jdbc-5.3.23.jar:5.3.23]
at org.springframework.jdbc.datasource.init.ScriptUtils.executeSqlScript(ScriptUtils.java:236) ~[spring-jdbc-5.3.23.jar:5.3.23]
... 122 common frames omitted
Поэтому я попытался протестировать их файл решения. И, судя по всему, тест в их решении тоже не работает и показывает то же сообщение об ошибке.
Вот структура дерева файлов:

Код: Выделить всё

├───.mvn
│   └───wrapper
├───.settings
├───00-rewards-common
│   ├───.settings
│   ├───src
│   │   ├───main
│   │   │   ├───java
│   │   │   │   └───common
│   │   │   │       ├───datetime
│   │   │   │       ├───money
│   │   │   │       └───repository
│   │   │   └───resources
│   │   │       └───rewards
│   │   │           └───testdb
│   │   └───test
│   │       └───java
│   │           └───common
│   │               ├───datetime
│   │               └───money
│   └───target
│       ├───classes
│       │   └───common
│       │       ├───datetime
│       │       ├───money
│       │       └───repository
│       ├───generated-sources
│       │   └───annotations
│       ├───generated-test-sources
│       │   └───test-annotations
│       ├───maven-archiver
│       ├───maven-status
│       │   └───maven-compiler-plugin
│       │       ├───compile
│       │       │   └───default-compile
│       │       └───testCompile
│       │           └───default-testCompile
│       ├───surefire-reports
│       └───test-classes
│           └───common
│               ├───datetime
│               └───money
─12-javaconfig-dependency-injection
│   ├───.settings
│   ├───src
│   │   ├───main
│   │   │   └───java
│   │   │       ├───config
│   │   │       └───rewards
│   │   │           └───internal
│   │   │               ├───account
│   │   │               ├───restaurant
│   │   │               └───reward
│   │   └───test
│   │       ├───java
│   │       │   ├───config
│   │       │   └───rewards
│   │       │       └───internal
│   │       └───resources
│   └───target
│       ├───classes
│       │   ├───config
│       │   ├───META-INF
│       │   │   └───maven
│       │   │       └───io.spring.training.core-spring
│       │   │           └───12-javaconfig-dependency-injection
│       │   └───rewards
│       │       └───internal
│       │           ├───account
│       │           ├───restaurant
│       │           └───reward
│       ├───generated-sources
│       │   └───annotations
│       ├───generated-test-sources
│       │   └───test-annotations
│       ├───maven-archiver
│       ├───maven-status
│       │   └───maven-compiler-plugin
│       │       ├───compile
│       │       │   └───default-compile
│       │       └───testCompile
│       │           └───default-testCompile
│       ├───surefire-reports
│       └───test-classes
│           ├───config
│           └───rewards
│               └───internal
Я пропустил другие папки, поскольку это очень длинное дерево.

Подробнее здесь: https://stackoverflow.com/questions/793 ... nother-lab
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»