Pipes

Status
Nicht offen für weitere Antworten.
Hallo,
Ich hab in Java einen Webserver geschrieben (funktioniert recht gut) - jetzt wollte ich das ganze um CGI-Funktionalität erweitern; nur da hab ich ein kleines Problem. Ich starte mit exec (aus Runtime) den Perl-Interpreter + das aufgerufene Script übergebe ich als Argument -> ich weiß aber nicht wie ich dem Script Eingaben (Formulardaten) übergeben kann. Sollte irgendwie mit Pipes gehn? Ausgabe auch dasselbe?
Muss mein Java-Server auch Environment-Variablen dem Script zur Verfügung stellen?

Hoffe mir kann jemand helfen, wäre sehr dankbar.
 
hm, hat wirklich niemand eine Idee?
Mit PipedInputStream müsst es funktionieren - nur ist mir nicht ganz klar wie ich mich zum Standard-Output vom Perl-Script "connecten" kann. bzw. PipedOutputStream und StdInput von Script...

m.f.g. Ronsimaschine
 
G

Guest

Gast
Schau Dir die Methoden getInputStream() und getErrorStream() in der Klasse Process an.

z.B. (Ausgabe vom aufgerufenen Programm nach System.out umleiten; hier Zeichenweise, solange etwas kommt)
Code:
Process p = Runtime.getRuntime().exec(...);
InputStreamReader in = new InputStreamReader(p.getInputStream());
int c;
while ((c=in.read()) != -1)
  System.out.write(c);
In Deinem Server brauchst Du selbstverständlich mehr Kontrolle über die ausgeführten
Prozesse bzw. auch eine vernünftige Pufferung der Ausgabe und eine Fehlerbehandlung.
Nicht dass Dir der Server wegen einer Endlosschleife oder sonstigem fehlerhaften Verhalten
in dem CGI-Programm/Script um die Ohren fliegt.
Status: 5## ist das Mindeste, was der Server im Fehlerfall ausspucken sollte. ;)

Gruß,
Michael
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben