файловая структура здесь

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

Ниже код я пробовал до сих пор.

++ оригинальный пост.

Это моя текущая ситуация. Я пробовал много способов получить файл (test.json) ...

Нравится

InputStream in;



1.  in= valid.class.getResourceAsStream("/test.json"); 
2.  in = getClass().getClassLoader().getResourceAsStream("/test.json");
3.   in = Thread.currentThread().getContextClassLoader().getResourceAsStream("//test.json");
4. in=getClass().getResourceAsStream("/test.json"); 

5. in=ValidationUtils.class.getResourceAsStream("../resources/ds/test.json"); 

6. ClassLoader classLoader =  getClass().getClassLoader();
   in = classLoader.getResourceAsStream("test.json");
7.in=getClass().getResourceAsStream("/ds/test.json"); //tried just now


System.out.println("in"+in); //this is always null.

Ничего .. работа .. выше .. помогите пожалуйста ...

0
Energy 22 Окт 2018 в 17:59

2 ответа

Лучший ответ

Вы не можете (по умолчанию) получить доступ к ресурсам src/test/resources из кода в src/main/java. Все ресурсы src/test/resources доступны только для тестов, которые обычно хранятся в src/test/java и выполняются на этапе test (в Maven). На этом этапе код test может получить доступ к этим ресурсам некоторыми (не всеми) методами, которые вы указали в своем вопросе.

Для ваших основных классов корень ресурсов - src/main/resources. Вы должны сохранить там свой файл схемы JSON. Тестовый код также может получать доступ к ресурсам, хранящимся там (поэтому дублирование не требуется), но не наоборот.

2
Florian Albrecht 22 Окт 2018 в 15:48

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

in = getClass().getResourceAsStream("/ds/test.json");
0
Leo Aso 22 Окт 2018 в 15:16
52932348