| 

.NET C# Java Javascript Exception

1
Guten morgen,

ich bin neu hier und hoffe ihr könnt mir hier weiterhelfen.

Ich habe durch einen Arbeitsplatzwechsel das Vergnügen mich nun mit Groovy-Scripting auseinandersetzen zu dürfen, weil eines unserer Softwareprodukte auf solche Skripte zurückgreift.

Nun habe ich ein Skript, was diverse Dateien sucht und in ein vorgegebenes Verzeichnis kopiert. Das funktioniert so weit auch gut. Mein Vorgänger hat nun eine auskommentierte ZIP-Funktion hinzugefügt, die ich nun scharf schalten bzw. testen sollte. Ziel dieser Funktion soll es sein, dass das vorgegebene Verzeichnis nun Gezippt wird.

Das ganze Geraffel liegt auf einer Linux-Maschine und es soll ein Shell-Befehl "zip -9 -r" ausgeführt werden.

Leider bricht er hierbei ab mit dem Fehler :

javax.script.ScriptException: java.io.IOException: Stream closed

Habt Ihr einen Tipp wie ich das lösen kann ?

Hier der Code-Teil meines Vorgängers :

def makeZIP(def verz) {

def shellAufruf = "zip -9 -r " + verz + ".zip " + verz + "/*"
log.info("ShellAufruf: " + shellAufruf)
def process = shellAufruf.execute()
process.waitFor()

if (process.exitValue() > 0) {
log.info("Zippen von " + verz + " fehlgeschlagen...")
log.info("err Text: " + process.err.text)
return resultError(process.err.text)
}
else {
log.info("Zippen von " + verz + " erfolgreich durchgeführt...")
}
}


Wenn ich den Aufruf manuell auf der Shell eintrage - klappt das mit dem Zippen einwandfrei.

Viele Grüße
Michael
News:
12.12.2017
2 Antworten
0
Nur 'mal so in s Blaue geschossen:
Reichen die Rechte des Prozesses, der die Dateien zippen soll?
Hat dieser Prozess genügend Rechte auf das Verzeichnis?
12.12.2017
edvservice 1,4k 1 6
0
Hab es mir mal angeschaut. Die Rechte reichen aus. Mit dem Befehl konnte ich eine Datei erzeugen, ein Pfad erzeugen, CHMOD ausführen etc.

Nur das zippen will nicht klappen.
12.12.2017
Sie haben möglicherweise genügend Rechte; aber trifft das auch auf den Prozess zu?
Vielleicht versuchen Sie es einmal mit einem anderen Kommando.

Ich hatte schon häufiger den Fall, dass ein Prozess mit einer anderen Identität ausgeführt wurde als erwartet.
Das Script, das Sie mitgeteilt haben, sollte jedenfalls funktionieren.
edvservice 12.12.2017

Stelle deine Groovy-Frage jetzt!