2016-11-03 12 views
0

すべてのURLを.propertiesファイルの&パスに入れようとしています。だから私がそれらを変更しようとすれば、それはより簡単だろう。だからここに私のpath.properties(それがメイン\リソース\ SRCでの\ META-INF \春の\ path.properties)です:.propertiesファイル内のパスを読み取る

path.clientIdentify=C:\\Palms\\client-identify-bin\\dll 
path.clientEnroll=C:\\Palms\\client-enroll-bin\\dll 
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); 
     } 

    } 

} 

しかし、それはパスを呼び出さないようです。それとも正しいことをしていないのでしょうか?申し訳ありません初心者ここ、私は誰かが私を助けることを願っています。ありがとうございました。

答えて

0

プロパティファイルから値を取得していません。プロパティオブジェクトがロードされている場合は、プロパティファイルからによって値を取得できます。


リソースプロパティは、次のコード使用してファイルをロードします。

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"); 
+0

まだ動作しませんでした。 –

+0

あなたのコードがプロパティファイルをロードしていてもデバッグできますか? – kevto

+0

エラーリソースが見つかりません。したがって、プロパティファイルはロードされません。何故ですか? @KendallH。 –

関連する問題