Hallo,
ich versuche mein Problem datailierter zu beschreiben.
Nach einem Klick auf ein Link im Browser wird ein Servlet aufgerufen. Dieser ruft folgende Methode auf:
Die Methode startet ein batch-File mit einigen Parametern.
Das ganze läuft aber nur bis Zeile:
java -jar beangen.jar %propdatei% %generatorpath%> %f%/beangen.txt
Dann passiert nichts. Servlet arbeitet den Request ab und schickt die Seite an den Client, aber der Prozess läuft nicht.
Nun, ich weiß, ihr werdet jetzt sagen, ich soll in der Datei beangen.jar nach dem Problem suchen, habe ich schon. Daran liegt es nicht. Denn, wenn ich den Tomcat abschiesse, läuft der Prozess, wie gewünscht, zu Ende.
Vielleicht hat jemand eine Idee?
EDIT: habe eben noch festgestellt, dass das doch zu ende läuft, aber nach ca. 5-10 Minuten.
Beim manuellen Start über die Konsole dauert das ca. 3 Sekunden.
ich versuche mein Problem datailierter zu beschreiben.
Nach einem Klick auf ein Link im Browser wird ein Servlet aufgerufen. Dieser ruft folgende Methode auf:
Code:
public String startProcess()
{
File scripFile = new File(dir + "startbeangen.bat");
ProcessBuilder processBuilder = new ProcessBuilder("cmd", "/c",
scripFile.getAbsolutePath(), propdatei, archivname, dir,">test.txt");
processBuilder.directory(scripFile.getParentFile());
try {
System.out.println("[BeanGeneratorThread] startProcess - starte Process in "+ dir);
Process process = processBuilder.start();
System.err.println( "--------->"+process.toString());
System.out.println("[BeanGeneratorThread] startProcess - Process wurde gestartet");
// System.out.println(process.waitFor());
} catch (IOException e) {e.printStackTrace();}
System.out.println("[BeanGeneratorThread] startProcess return: "+dir+archivname);
return dir+archivname;
}
Die Methode startet ein batch-File mit einigen Parametern.
Code:
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
set propdatei=%1
set archivname=%2
set generatorpath=%3
echo 1
set f=log_%jahr%%monat%%tag%
echo 2
mkdir %f%
echo 3
java -jar beangen.jar %propdatei% %generatorpath%> %f%/beangen.txt
echo 4
java -jar compiler.jar src test testsuite > %f%/compiler.txt
echo 5
java -cp ./bin;./test/lib/junit.jar;./test/bin;./testsuite/bin junit.textui.TestRunner com.is_teledata.AllBeanTest > %f%/tests.txt
echo 6
java -jar zipper.jar %archivname% %generatorpath% > %f%/zipper.txt
echo 7
Das ganze läuft aber nur bis Zeile:
java -jar beangen.jar %propdatei% %generatorpath%> %f%/beangen.txt
Dann passiert nichts. Servlet arbeitet den Request ab und schickt die Seite an den Client, aber der Prozess läuft nicht.
Nun, ich weiß, ihr werdet jetzt sagen, ich soll in der Datei beangen.jar nach dem Problem suchen, habe ich schon. Daran liegt es nicht. Denn, wenn ich den Tomcat abschiesse, läuft der Prozess, wie gewünscht, zu Ende.
Vielleicht hat jemand eine Idee?
EDIT: habe eben noch festgestellt, dass das doch zu ende läuft, aber nach ca. 5-10 Minuten.
Beim manuellen Start über die Konsole dauert das ca. 3 Sekunden.
Zuletzt bearbeitet: