Прочитайте пути внутри .файл свойств

Я пытаюсь поместить все мои URL-адреса и пути .файл свойств. Так что, если я собираюсь изменить их, было бы проще. Итак, вот мой путь.свойства (это в srcmainresourcesMETA-INFspringpath.свойства):

path.clientIdentify=C:Palmsclient-identify-bindll
path.clientEnroll=C:Palmsclient-enroll-bindll
path.pvInfoIni=C://Palms//PV//PVInfo.ini
path.pvEnrollIni=C://Palms//PV//PVEnroll.ini

И я пытался вызвать пути в моем контроллере, так что это то, что я сделал:

@Controller
@RequestMapping("/call")
public class PalmsController {

    @RequestMapping(value = "/palmsIdentify")
    public ResponseEntity<String> palmusIdentify() throws IOException, InterruptedException {

        Properties properties = new Properties();
        try (InputStream is = new FileInputStream("classpath*:META-INF/spring/*.properties")) {
            properties.load(is);
        }

        HttpHeaders headers = new HttpHeaders();
        ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "StartSample.bat");
        builder.directory(new File("path.clientIdentify"));
        Process process = builder.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(process.getInputStream()));
        r.close();
        process.waitFor();

        Properties p = new Properties();
        try {
            p.load(new FileInputStream("path.pvInfoIni"));
            String pvidNO1 = p.getProperty("PVIDNO");
            String pvidNo2 = p.getProperty("PVIDNo");
            String authentication = p.getProperty("Authentication");

            // Convert to JSON
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("pvId", pvidNO1);
            jsonObject.put("PVIDNo", pvidNo2);
            jsonObject.put("is_Authenticated", authentication);

            return new ResponseEntity<String>(jsonObject.toString(),headers ,HttpStatus.OK);

        }
        catch (Exception e) {
            return new ResponseEntity<String>("{"ERROR":" + e.getMessage() + ""}", headers,
                    HttpStatus.INTERNAL_SERVER_ERROR);
        }
    }

    @RequestMapping(value = "/palmusEnroll")
    public ResponseEntity<String> palmusEnroll() throws IOException, InterruptedException {
        Properties properties = new Properties();
        try (InputStream is = new FileInputStream("classpath*:META-INF/spring/*.properties")) {
            properties.load(is);
        }

        HttpHeaders headers = new HttpHeaders();
        ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "StartSample.bat");
        builder.directory(new File("path.clientEnroll"));
        Process process = builder.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(process.getInputStream()));
        r.close();
        process.waitFor();

        // PARSING
        Properties p = new Properties();
        try {
            p.load(new FileInputStream("path.pvEnrollIni"));
            String pvidNO1 = p.getProperty("PVIDNO");
            String palmusId = p.getProperty("PALMUS_ID");


            // Convert to JSON
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("pvId", pvidNO1);
            jsonObject.put("palmusId", palmusId);
            return new ResponseEntity<String>(jsonObject.toString(),headers ,HttpStatus.OK);
        } 
        catch (Exception e) {
            return new ResponseEntity<String>("{"ERROR":" + e.getMessage() + ""}", headers,
                    HttpStatus.INTERNAL_SERVER_ERROR);
        }

    }

}

Но, похоже, он не называет пути. Или, может быть, я делаю это неправильно? Извините новичка здесь, я надеюсь, кто-то может помочь мне. Спасибо!.

1 ответ

  1. Вы не получаете значение из файла свойств. Если объект properties загружен ,можно получить значение из файла propertiesproperties.getProperty("key").


    Загрузите файл свойств ресурса, используя следующий фрагмент кода:

      properties.load(getClass().getClassLoader().getResourceAsStream("META-INF/spring/path.properties"));
    

    И он должен заменить:

    try (InputStream is = new FileInputStream("classpath*:META-INF/spring/*.properties")) {
        properties.load(is);
    }
    

    И тогда вы можете получить пути, как это:

    properties.getProperty("path.clientIdentify");