2012-12-11 37 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的完整说明。

相关问题