PDA

View Full Version : Java Anwendung installiert auf Application Server Problem Datei abspeichern



firestone
16-09-08, 13:34
Hallo Leute

mir ist dieses Forum empfohlen worden und ich hoffe ihr könnt mir helfen.

Also folgendes ich erstelle in meiner Java Anwendung ein File mit

File fi = new File(pfad);

dann habe ich einen FileWriter

FileWriter wr = new FileWriter(file);

um Daten in die Datei zu schreiben.

Der Pfad sieht wie folgt aus

\\\\rechnername\\ordner\\

Jetzt wird die Anwendung auf einem Application Server installiert und ich versuche die Datei in das oben genannte Verzeichnis zu exportieren.

Was die Anwendung macht ist folgendes
sie nimmt das default Verzeichnis des Servers als Ablage für die Datei und den oben genannnten Pfad als Dateiname.

Der Fileserver auf dem die Datei landen soll liegt im selben Netzwerk. Muss ich zwischen dem Fileserver und dem Application Server eine Art Verbindung herstellen damit die Java Anwendung darauf schreiben kann ??

Und wie verhindere ich das er das default Verzeichnis des Servers als Pfadangabe verwendet ?

Ich hoffe ihr habt das Problem verstanden .

Gruß Firestone

RobertPic
16-09-08, 14:08
Nur damit wir nicht aneinander vorbeireden: Der ApplicationServer ist auf der "System i/AS/400" (Webshpere?) und das Netzwerklaufwerk ist eine Windows/Samba-Freigabe?

Die von der verwendete UNC-schreibweise funktioniert nur für Windows.

Wenn du von der AS/400 auf eine Windowsfreigabe zugreifen willst, hast du 2. Möglichkeiten:

1.) mit QNTC arbeiten
Im QNTC kann man sich Verknüpfungen zu Windowsfreigaben anlegen (mkdir bei Startup)
Der Pfad wäre dann \QNTC\Rechnername\freigabename

Wobei sich die AS/400 mit dem Benutzer/Passwort des aktuellen Users anmeldet. Welcher das im Falle des Applikationserver ist, kann ich jetzt auch nicht sagen.

Weiters kann QNTC nicht alle Arten von Authentifizierung - das muss nicht bei jeder Freigabe (neue Windowsserver, Samba) funktionieren.

2.) Mit der Javabibliothek JCifs. Mit dieser kann man auf alle Arten von Windowsfreigaben zugreifen - auch von der AS/400 aus.

Statt File verwendst du dann SmbFile(pfad)

Wobei der Pfad dann ungefähr so auszuseheh hat:
smb://user:pass@rechner/freigabe/pfad/datei

Bei Problemen mit der Rechnernamenauflösung kann man auch die IP-Adresse verwenden.

/Robert

firestone
16-09-08, 14:12
Genau es ist ein Websphere Application Server und eine Windows Fileserver ;) .


Ich werde mir das mit JCifs mal anschauen eventuell ist das genau das was ich suche :) .

RobertPic
16-09-08, 14:46
Dann sollte JCifs passen, hier nocheinmal der Pfad, aber mit CodeTags:



smb://user:pass@rechner/freigabe/pfad/datei

/Robert

firestone
16-09-08, 14:50
Wenn ich den File dann über den befehl erstellt habe wie schreibe ich dann da rein ?

Also bei File gibt es ja den FileWriter gibt es sowas ähnliches auch bei SmbFile ?

BIn auf dem Gebiet leider neuling :(

RobertPic
16-09-08, 15:43
Also bei File gibt es ja den FileWriter gibt es sowas ähnliches auch bei SmbFile ?


Den FileWriter gibt es nich im jCifs. Du kannst z.B. den PrintWriter (http://java.sun.com/j2se/1.5.0/docs/api/java/io/PrintWriter.html) verwenden. Dieser funktioniert ähnlich dem FileWriter.

Du kannst den PrintWriter z.B. mit

PrintWriter (http://java.sun.com/j2se/1.5.0/docs/api/java/io/PrintWriter.html#PrintWriter%28java.io.OutputStrea m%29)(smbFile.getOutputStream()) (http://java.sun.com/j2se/1.5.0/docs/api/java/io/OutputStream.html)erzeugen.

Ich verwende zwar meistens PrintStream PrintStream (Java 2 Platform SE 5.0) (http://java.sun.com/j2se/1.5.0/docs/api/java/io/PrintStream.html) da man bei diesem den Zielzeichensatz angeben kann.

Auch dieser läßt sich mit dem OutputStream vom smbFile erzeugen.

/Robert