[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Oct 2008
    Beiträge
    43

    Java renameTo() über Verzeichnisse hinweg

    Hallo Ihr!

    Ich benutze in einer WAS-Anwendung die Methode File.renameTo(), um eine Datei von einem Verzeichnis in ein anderes Verzeichnis darunter zu verschieben. Unter Linux klappt das auch, auf der iSeries jedoch nicht. Berechtigungen habe ich geprüft. Leider gibt das Jobprotokoll des WAS sowie System.out nichts her. Vermutlich liefert die Methode nur false und das war's.

    Hat jemand eine Ahnung, wie ich die Ursache herausfinden kann bzw. warum die Aktion auf der iSeries fehlschlägt?


    Danke, Titus

  2. #2
    Registriert seit
    Oct 2008
    Beiträge
    43
    Nanu, noch niemand auf der iSeries eine Datei mit Java in ein anderes Verzeichnis übertragen?

    Leider suche ich noch immer nach der Ursache für das Problem. Ich habe nun festgestellt, dass renameTo() false liefert. Aber nicht, warum das so ist.

    Gibt es evtl. einen Server-Job, der für das IFS zuständig ist und etwas loggt?


    Danke, Titus

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... Ratespiele sind nicht so sehr beliebt, erzähl doch mal ein wenig genauer was du da so machst...

    D*B

    Zitat Zitat von Sensonaut Beitrag anzeigen
    Nanu, noch niemand auf der iSeries eine Datei mit Java in ein anderes Verzeichnis übertragen?

    Leider suche ich noch immer nach der Ursache für das Problem. Ich habe nun festgestellt, dass renameTo() false liefert. Aber nicht, warum das so ist.

    Gibt es evtl. einen Server-Job, der für das IFS zuständig ist und etwas loggt?


    Danke, Titus
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Oct 2008
    Beiträge
    43
    Zitat Zitat von BenderD Beitrag anzeigen
    ... Ratespiele sind nicht so sehr beliebt, erzähl doch mal ein wenig genauer was du da so machst...

    D*B
    Achso, ich dachte, das ging schon aus meinem ursprünglichen Text hervor, den ich vor ein paar Tagen gesendet habe.

    Es geht darum, dass unter WAS 6.0 und Java 1.4.2 eine Webanwendung läuft, die auch auf das IFS der iSeries zugreift. Innerhalb der Anwendung gibt es einen Job, der regelmäßig Dateien in einem Verzeichnis verarbeitet und diese danach in ein vorhandenes Unterverzeichnis verschieben soll. Dazu kann man ja die Methode File.renameTo() verwenden. Auf unserem Testsystem, das unter Linux läuft, klappt das auch. Auf der iSeries mit dem selben Code jedoch nicht. Leider gibt es auch keine Exception, aus der man erkennen könnte, was das Problem ist.

    Titus

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Schau dir den Befehl REN auf der AS/400 an.
    Ein Rename geht nur im selben Verzeichnis.
    Zum Verschieben gibts den Befehl MOV, der auch ein Umbenennen erlaubt.
    Ich denke, in Java muss es auch eine passende Methode geben.
    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

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... ich gehe mal davon aus, dass du java.io.File verwendest, wenn du dir da die Doku ansiehst, dann siehst du, dass das vom Filesystem abhängt. Von wo nach wo willst du denn schieben???
    Notfalls wirst du Plattformabhängig, wenn du das vom OS machen lässt, oder musst neu erstellen, im Java kopieren und löschen.

    D*B

    Zitat Zitat von Sensonaut Beitrag anzeigen
    Achso, ich dachte, das ging schon aus meinem ursprünglichen Text hervor, den ich vor ein paar Tagen gesendet habe.

    Es geht darum, dass unter WAS 6.0 und Java 1.4.2 eine Webanwendung läuft, die auch auf das IFS der iSeries zugreift. Innerhalb der Anwendung gibt es einen Job, der regelmäßig Dateien in einem Verzeichnis verarbeitet und diese danach in ein vorhandenes Unterverzeichnis verschieben soll. Dazu kann man ja die Methode File.renameTo() verwenden. Auf unserem Testsystem, das unter Linux läuft, klappt das auch. Auf der iSeries mit dem selben Code jedoch nicht. Leider gibt es auch keine Exception, aus der man erkennen könnte, was das Problem ist.

    Titus
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Oct 2008
    Beiträge
    43
    Zitat Zitat von BenderD Beitrag anzeigen
    ... ich gehe mal davon aus, dass du java.io.File verwendest, wenn du dir da die Doku ansiehst, dann siehst du, dass das vom Filesystem abhängt. Von wo nach wo willst du denn schieben???
    Notfalls wirst du Plattformabhängig, wenn du das vom OS machen lässt, oder musst neu erstellen, im Java kopieren und löschen.

    D*B
    Ja, ich meine java.io.File. In der Doku steht "from one filesystem to another is platform-dependent". Von einem Filesystem zu einem anderen? Oder wie? Da ich nur in ein Unterverzeichnis des Quellverzeichnisses verschieben möchte, ist es aber doch das selbe Filesystem. Ich bleibe doch im IFS.

    Wie auch immer, es scheint wohl im IFS nicht möglich zu sein, mit renameTo() eine Datei zu verschieben. Dann muss ich wohl auf die Copy/Delete-Lösung ausweichen.

    Kennt sich hier eigentlich jemand mit dem WAS auf der iSeries aus?? Wir haben öfter Probleme mit Dateizugriffen, finden aber keine Logfiles, die genauere Informationen liefern. Im Joblog des WAS sieht man ja überhaupt nichts. Und Sytem.out, System.err sind eher Java-orientiert und geben keine Hinweise, ob und an welchen Berechtigungen es z.B. hakt. (Früher, in der native-Programmierung (CL/RPG) wurde in den Joblogs immer alles sehr detailier aufgeführt.)

    Titus

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... was meinst du mit IFS? QSYS.LIB, QDLS, QOpenSys (letzteres würde ich mal versuchen), QNTC.
    ... was das logging angeht, sollte man schon bei allen Exceptions mal zumindest getMessage() der Exception und/oder den call stack ausgeben. Standard mäßig verwendet man da log4j.
    Bei CL/RPG sind solche Joblogs ein Zeichen von Huddel, bei der Abwesenheit von ErrorHandling rattert da alles durch bis zur Runtime. In Java geht das eben nicht und wer da Exceptions mit leeren catch Blöcken fängt, steht da wo er hingehört: im Wald!

    D*B

    Zitat Zitat von Sensonaut Beitrag anzeigen
    Ja, ich meine java.io.File. In der Doku steht "from one filesystem to another is platform-dependent". Von einem Filesystem zu einem anderen? Oder wie? Da ich nur in ein Unterverzeichnis des Quellverzeichnisses verschieben möchte, ist es aber doch das selbe Filesystem. Ich bleibe doch im IFS.

    Wie auch immer, es scheint wohl im IFS nicht möglich zu sein, mit renameTo() eine Datei zu verschieben. Dann muss ich wohl auf die Copy/Delete-Lösung ausweichen.

    Kennt sich hier eigentlich jemand mit dem WAS auf der iSeries aus?? Wir haben öfter Probleme mit Dateizugriffen, finden aber keine Logfiles, die genauere Informationen liefern. Im Joblog des WAS sieht man ja überhaupt nichts. Und Sytem.out, System.err sind eher Java-orientiert und geben keine Hinweise, ob und an welchen Berechtigungen es z.B. hakt. (Früher, in der native-Programmierung (CL/RPG) wurde in den Joblogs immer alles sehr detailier aufgeführt.)

    Titus
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Oct 2008
    Beiträge
    43
    Es handelt sich um ein Verzeichnis in "/QIBM/UserData". Ich dachte, alles was nicht Bibliothek oder QDLS sei, ist IFS.

    Logging usw. übernimmt hier das Framework. Da die Methode keine Exception wirft, wird auch nichts geloggt oder kann mit getMessage() ausgegeben werden. Sonst würde ich hier ja nicht fragen.

    Titus

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    die Hinweise zum logging bezogen sich auf die "Fehler bei Dateizugriffen" von denen du da schreibst. Das Verhalten von java.io.File ist in der Javadoc klar so beschrieben. QOpenSys wäre noch einen Versuch wert, das ist ein Unix like Dateisystem im IFS.

    D*B

    Zitat Zitat von Sensonaut Beitrag anzeigen
    Es handelt sich um ein Verzeichnis in "/QIBM/UserData". Ich dachte, alles was nicht Bibliothek oder QDLS sei, ist IFS.

    Logging usw. übernimmt hier das Framework. Da die Methode keine Exception wirft, wird auch nichts geloggt oder kann mit getMessage() ausgegeben werden. Sonst würde ich hier ja nicht fragen.

    Titus
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Oct 2008
    Beiträge
    43
    Zitat Zitat von BenderD Beitrag anzeigen
    QOpenSys wäre noch einen Versuch wert, das ist ein Unix like Dateisystem im IFS.
    D*B
    Wenn ich mit WRKLNK den Inhalt des Verzeichnis /QOpenSys/QIBM/UserData anzeige, wird mein Verzeichnis "Import" darin interessanter Weise gar nicht aufgelistet. Gebe ich /QIBM/UserData ein, wird es aufgeführt. Habe ich beim Erstellen des Verzeichnisses Import evtl. schon etwas falsch gemacht? *grübel

    Titus

Similar Threads

  1. Java und Fehlermeldung jva0122 bei simplen "Hello World"
    By TARASIK in forum IBM i Hauptforum
    Antworten: 21
    Letzter Beitrag: 30-03-11, 13:48
  2. RPG aus Java aufrufen
    By Vicky-B in forum NEWSboard Java
    Antworten: 17
    Letzter Beitrag: 06-05-08, 11:05
  3. Java Version
    By Muchi in forum NEWSboard Java
    Antworten: 2
    Letzter Beitrag: 07-11-06, 11:00
  4. Rpg to java
    By Badener in forum NEWSboard Java
    Antworten: 5
    Letzter Beitrag: 13-07-06, 17:09
  5. Antworten: 3
    Letzter Beitrag: 06-06-06, 15:57

Berechtigungen

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