[NEWSboard IBMi Forum]
  1. #1
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012

    Zugriff auf Filesystem

    Hallo,

    nachdem ich ja inzwischen erfolgreich den Tomcat Servlet Container installiert habe, und auch die ersten Servlets darauf laufen, bin ich jetzt auf ein Problem beim Zugriff auf das Filesystem gestoßen.

    Es läuft ein Servlet, das über UNC auf das Filesystem eines anderen Servers zugreifen will, um dort eine TIFF-Grafik aus einem Verzeichnis einzulesen. Die TIFF soll bearbeitet werden (gedreht und skaliert) und dann auf einen weiteren Server abgespeichert werden.

    Wenn ich auf das lokale Filesystem zugreife, funktioniert das auch problemlos. Nur wenn ich auf einen anderen Server zugreife (z.B. \\Server\Freigabe\Datei.tiff), dann erhalte ich den Fehler "Zugriff verweigert"). Zunächst dachte ich es liegt an Verzeichnis- bzw. Dateiberechtigungen. Da aber jeder Vollzugriff hat, scheint es nicht daran zu liegen. Ich vermute eher, dass das eine Sicherheitseinschränkung durch den Tomcat ist. Kann das sein ? Kann ich das irgendwie umgehen ? Denn ich müsste wirklich auf andere Server zugreifen.

    Gruß,
    KM

  2. #2
    Registriert seit
    Oct 2004
    Beiträge
    251
    Zitat Zitat von KM Beitrag anzeigen
    Es läuft ein Servlet, das über UNC auf das Filesystem eines anderen Servers zugreifen will...
    Also UNC sagt mir jetzt nichts, was meinst du damit?

    Zitat Zitat von KM Beitrag anzeigen
    Nur wenn ich auf einen anderen Server zugreife (z.B. \\Server\Freigabe\Datei.tiff), dann erhalte ich den Fehler "Zugriff verweigert").
    Meines Wissens kann Java nicht direkt auf die Freigaben zugreifen. Mappe einmal die Freigabe (im Windows) und greife über den Laufwerksbuchstaben zu. (zwecks Test)

    Um direkt auf die Smb/Windows zugreifen zu können, benötigst du die Lib jCIFS.
    Code:
    InputStream in = 
      new SmbFileInputStream( "smb://user:passwd@host/c/My Documents/doc.txt" ); 
    byte[] b = new byte[ 8192 ]; 
    for ( int n; ( n = in.read( b )) > 0; ) 
      out.write( b, 0, n );
    Ich werde die Lib auch demnächst auf der AS/400 einsetzten - das QNTC nervt mitunter (reconnect, timeout...).

  3. #3
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    Hallo Robert,

    mit UNC ist der Zugriff über SMB gemeint. SMB greift ja über UNC-Pfade zu (z.B. \\Server\Freigabe\Datei.tiff).

    Ich hatte auch schon auf dem Server, auf dem der Tomcat läuft, ein Netzlaufwerk zu dem anderen Server hergestellt und dann versucht die Datei über diesen Pfad (inkl. Laufwerksbuchstaben) anzusprechen. Aber das funktioniert auch nicht (Zugriff verweigert). Das muß irgendeine Einschränkung vom Tomcat-Server sein. Evtl. eine Policy-Einstellung ? Der Tomcat-Server scheint standardmäßig keinen Zugriff auf einen anderen Server zu erlauben.

    Gruß,
    KM

  4. #4
    Registriert seit
    Oct 2004
    Beiträge
    251
    Da fallen mir 3 Sachen ein:

    1.) Unter welchem Benutzer läuft der Tomcat-Dienst (Systemsteuerung/Dienste/Apache Tomcat/Eigenschaft). Versuch dort einmal einen Benutzer der sicher auf dem Netzwerklaufwerk was tun darf.

    2.) die richtige Anzahl der slash?
    Wenn du mit Backslah arbeitest muss da ungefähr so aussehen:
    \\\\Server\\Freigabe\\Datei.tiff

    oder halt
    //Server/Freigabe/Datei.tiff

    3.) Darf die Datei geändert auch werden? ev. Lockmode ändern

    Achja, ich konnte bei meinem Tomcat (allerdings die Eclipse-Instanz) problemlos vom Netz kopieren.


    BTW:
    Habe ich gerade getestet: Unter Windows geht der Zugriff mit \\server\freigabe\datei.ext

    Das geht aber nur unter Windows! Wenn es auf jeder Plattform gehen soll, braucht man die jCFIS-Lib. (sowie bei uns: Windows, Linux, i5)

  5. #5
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.012
    1.) Unter welchem Benutzer läuft der Tomcat-Dienst (Systemsteuerung/Dienste/Apache Tomcat/Eigenschaft). Versuch dort einmal einen Benutzer der sicher auf dem Netzwerklaufwerk was tun darf.
    Das war's. Ich habe beim Tomcat-Dienst jetzt einen Benutzer eingetragen, der sowohl auf dem externen Windows-Server, als auch auf der iSeries existiert. Und damit funktioniert's.

    2.) die richtige Anzahl der slash?
    Wenn du mit Backslah arbeitest muss da ungefähr so aussehen:
    \\\\Server\\Freigabe\\Datei.tiff
    Genau so habe ich die Anzahl an Slashs angegeben. So passt's auch.

    BTW:
    Habe ich gerade getestet: Unter Windows geht der Zugriff mit \\server\freigabe\datei.ext

    Das geht aber nur unter Windows! Wenn es auf jeder Plattform gehen soll, braucht man die jCFIS-Lib. (sowie bei uns: Windows, Linux, i5)
    Auf der iSeries geht der Zugriff mit diesem UNC-Pfad auch. Bei Linux weiß ich das nicht. Das brauche ich auch nicht. Ist aber ein guter Hinweis mit dem jCIFS. Muß ich mir mal anschauen. Was hat das für Vorteile gegenüber dem direkten Zugriff über den UNC-Pfad ?

    Damit kann ich nun mit meinem Servlet (das unter Tomcat auf einem Windows-Server läuft) auf einen zweiten Windows-Server zugreifen, um TIFF-Dateien einzulesen. Diese werden im Servlet modifiziert und per UNC-Pfad (\\iSeries\home\Datei.tiff) auf der iSeries abgespeichert. Das ist genau das, was ich wollte.

    Vielen Dank nochmal für den Hinweis mit dem Benutzer. Trotz vorhandenem Gast-Benutzerprofil und Berechtigung "Jeder Vollzugriff" musste wohl trotzdem ein gültiger Benutzer für den Tomcat-Dienst eingetragen werden.

    Danke,
    KM

  6. #6
    Registriert seit
    Oct 2004
    Beiträge
    251
    Zitat Zitat von KM Beitrag anzeigen
    Auf der iSeries geht der Zugriff mit diesem UNC-Pfad auch. Bei Linux weiß ich das nicht.
    Bei mir (V5R2) geht der UNC-Zugriff nicht - weder in der PASE-Umgebung noch mit Java. Wozu haben die dann das QNTC gemacht?


    Zitat Zitat von KM Beitrag anzeigen
    ..Hinweis mit dem jCIFS..Was hat das für Vorteile gegenüber dem direkten Zugriff über den UNC-Pfad ?
    Ich habe mich mit UNC nicht beschäftigt - auf die schnelle habe ich nur eine Längenbeschränkung (26Stellen) gefunden.
    Ein Vorteil von von jCFIS ist sicher, dass man User+Passwort extra angeben kann. Ansonsten wird man es wohl nicht brauchen, wenn man auch via UNC zugreifen kann.

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Wie der Name schon sagt:

    QNTC, sprich WindowsNT/XP/2000

    Für Linuxfreigaben kann man mittels "Mount" Verbindung von der AS/400 aufnehmen.
    Dies funktioniert ggf. auch mit Windows-Büchsen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. Kein Zugriff von Linux auf AS/400 Freigabe?
    By schatte in forum NEWSboard Linux
    Antworten: 12
    Letzter Beitrag: 29-01-08, 14:02
  2. Kein Zugriff über QNTC auf Win-Share
    By marmart in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 25-09-07, 15:29
  3. Nachricht CPDB053 beim Zugriff auf Windows Freigabe
    By schatte in forum NEWSboard Windows
    Antworten: 7
    Letzter Beitrag: 21-11-06, 11:37
  4. QNTC Zugriff auf CD Laufwerk Fehlerhaft
    By pwrdwnsys in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 07-11-06, 15:34
  5. Antworten: 3
    Letzter Beitrag: 27-08-06, 17:31

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •