2012-12-11 36 views
0

我試圖從軸web服務啓動應用程序,但我不明白我在做什麼錯。 我用來生成Web服務的類是這樣的:從軸web服務啓動應用程序

public class Esecutore { 

public String esegui(){ 
     try { 

      ProcessBuilder builder=new ProcessBuilder("parser.bat"); 
      builder.redirectErrorStream(true); 
      Process pr; 
      pr = builder.start(); 
      InputStream stdout=pr.getInputStream(); 
      OutputStream stdin=pr.getOutputStream(); 
      BufferedReader br=new BufferedReader(new InputStreamReader(stdout)); 
      BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(stdin)); 
      String line = br.readLine(); 
      while(line!=null){ 
       line=br.readLine(); 
      } 
      int termine=pr.waitFor(); 
      if(termine!=0){ 
       return "errore nell'inserimento"; 
      } 
      return "finito"; 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      return "errore: "+e.getMessage(); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      return "errore: "+e.getMessage(); 
     } 


} 
} 

批處理文件正常工作,當我在命令行中執行它,它只是推出一個.jar,它不需要任何輸入。但是,我可以看到,當我通過此代碼執行操作時,它具有不同於0的退出狀態,並且由於.jar應該寫入數據庫,我也從數據庫日誌中知道它根本不會被執行。

回答

0

我首先會在軸外測試這個類的功能,看它是否有效。
由於您有'bat'文件,我假設我們正在討論Windows中的批處理文件。在這種情況下,ProcessBuilder應該在構造函數「cmd/c start parse.bat」中。請參閱here的完整說明。

相關問題