Я работаю над созданием веб-приложения вокруг автономного приложения JAR. По сути, приложение JAR считывает входной файл, обрабатывает его и генерирует выходной файл.Spring MVC - не удалось получить доступ к файлу с относительным путем, требуемым зависимостью JAR
Входной файл помещается следующим образом, рядом с JAR.
Код для приложения JAR будет показано ниже.
public class FileReadWriteApp {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try {
File inFiles = new File("../inputFiles");
if (!inFiles.exists()) {
if (inFiles.mkdirs()) {
System.out.println("Input directory is created!");
} else {
System.out.println("Failed to create input directory!");
}
}
Path inputPath = FileSystems.getDefault().getPath("testInput.txt", new String[0]);
Files.copy(inputPath, new FileOutputStream("../inputFiles/testInput.txt"));
String content = new String(Files.readAllBytes(inputPath));
String parsedInput = content.toUpperCase();
new File("../outputFiles").mkdirs();
Files.write(Paths.get("../outputFiles/testOutput.txt"), parsedInput.getBytes());
} catch (IOException exc) {
System.out.println(exc);
System.exit(1);
}
}
После выполнения JAR в командной строке это успешно создает inputFiles и папку outputFiles на один уровень выше, чем файл JAR и правильно помещает соответствующие входные/выходные файлы.
Однако, когда я добавить файл JAR, как зависимость в весеннем основе веба-приложениях, которые я строй и поместить входной файл и файл JAR в том же месте, он не может получить доступ к файлу ввод ,
В Spring веб-приложения, я поместил как входной файл и файл JAR, как показано ниже:
Я могу даже увидеть их прийти в целевую папку в Lib каталога, как показано ниже:
В моем методе Spring Controller, я выполнение main()
метод файла JAR, как это:
String[] args = new String[] { "" };
filereadwriteapp.FileReadWriteApp.main(args);
Однако в консоли я вижу эти сообщения:
Input directory is created!
java.nio.file.NoSuchFileException: testInput.txt
Я не могу понять, почему приложение не может найти файл testInput.txt
?
Может ли кто-нибудь любезно вести меня относительно исправления этой проблемы?
Есть ли какое-то конкретное место, где я должен разместить файл testInput.txt
, чтобы файл JAR зависимости был доступен для него?
Обратите внимание, что я не загружаю ресурс из каталога WEB-INF из веб-приложения. В моем случае у меня возникает проблема с JAR-зависимой JAR-загрузкой ресурса из относительного пути к самому себе.
Любая помощь в этом отношении будет высоко оценена.
Возможный дубликат [Howto загрузить ресурс из WEB-INF каталога веб-архив] (HTTP: //stackoverflow.com/questions/1108434/howto-load-a-resource-from-web-inf-directory-of-a-web-archive) –
@JamesJithin, я не уверен, что это дубликат этого вопроса.Этот другой вопрос связан с загрузкой ресурса из каталога WEB-INF из веб-приложения. В моем случае у меня возникает проблема с JAR-зависимой JAR-загрузкой ресурса из относительного пути к самому себе. – MSR
Вам нужно будет использовать тот же подход в баре зависимости, чтобы прочитать файл. –