axis 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はデータベースに書き込む必要があるため、dbログからもまったく実行されないことがわかります。