[NEWSboard IBMi Forum]

Thema: JavaMail API

  1. #1
    Registriert seit
    Jun 2004
    Beiträge
    40

    JavaMail API

    Guten Morgen,

    ich habe folgendes Problem:
    Ich habe bei uns auf der Maschine das JavaMail API installiert inkl. des Tools von James Zhang.
    Nun habe ich ein RPG Programm, von wo aus ich Emails versenden möchte.
    Wenn ich als User angemeldet bin, funktioniert alles bestens.
    Wenn ein "gewöhnlicher" User das Programm nutzt, dann schlägt das senden der Email fehl. Man bekommt die Fehlermeldung, dass auf Grund eines nicht korrekt gesetzten Zeigers ein Fehler aufgetreten ist.
    Im Jobprotokoll finde ich die Einträge "Klasse MIFunctions kann nicht gefunden werden" (2x), "Zeiger für angegebene Position nicht gesetzt" (2x) und "Zeiger- oder Parameterfehler" (2x)

    In der Installationsbeschreibung des Tools von James Zhang stand, dass man die letzten JV1 Group PTF's installieren sollte. Dies hab ich bisher noch nicht gemacht. Hat ja auch im Test mit meiner User-ID alles funktioniert.
    Ist das nun ein Problem, das auf den PTF Stand zurückzuführen ist ? Wäre über einen Tipp sehr dankbar.

    Gruß,
    O.Hölscher

    P.S.
    Noch etwas zum Thema PTF's. Gibt es eigentlich die Möglichkeit, sich die PTF's über's Internet downzuloaden ?

  2. #2
    Registriert seit
    May 2002
    Beiträge
    2.643

    Java Gruppenptf

    Hallo Olli,
    generell kann man Ptfs schon über Leitung bzw. Internet
    downloaden, aber das sind nur Einzelptfs bzw. man kann eine
    Bestellung absetzen.

    Das Javagruppenptf sollte man schon über die IBM Hotline
    bestellen (08004266204) und hier die IBM Kundennummer und
    die AS/400 Seriennummer bereithalten.

    Zu bestellen ist je nach Release folgende Gruppenptfs:

    R530: SF99269
    R520: SF99169
    R510: SF99069
    R450: SF99068


    Siehe:

    http://www-912.ibm.com/s_dir/sline00...0&Expand=13#13

  3. #3
    Registriert seit
    Jun 2004
    Beiträge
    40
    Hallo Tarasik,

    danke für den Hinweis. Die Nummer ist mir wohl auch bekannt. Ich dachte nur, dass man evtl. auch Group PTF's per Internet downloaden kann... egal. Ich hab sie gerade tel. bestellt.

    Bzgl. des Problems mit dem JavaMail API würd mich mal interessieren, ob jmd. schonmal so eine Fehlersituation hatte.
    Das JavaMail API scheint ja sehr verbreitet zu sein. Sind ja ausreichend Beiträge darüber hier im Forum vorhanden.

    Gruß,
    O.Hölscher

  4. #4
    Registriert seit
    May 2002
    Beiträge
    2.643

    Java Mail API

    Hallo Olli,
    ich habe hier eine Anleitung und da steht definitiv, dass ein
    Javagruppenptf vorhanden sein muss und da sollte man doch
    das aktuellste installieren:

    Remember, this only works with V5R1 or higher
    1. Install the latest JV1 group PTF's. This will not work with the JV1 group as installed from the V5R1 CD's (I know this from experience).
    2. Create a directory called JavaUtil in the root of the IFS.
    3. Create a directory called JavaMail in the JavaUtil directory.
    4. Move the following files to /JavaUtil/JavaMail :
    activation.jar
    imap.jar
    JavaMail.class
    JavaMail.java
    JavaMail.properties
    JavaMailwithAttachment.class
    JavaMailwithAttachment.java
    mail.jar
    mailapi.jar
    pop3.jar
    smtp.jar
    Note: .class and .jar files are binary files. If you are using FTP to move the files, be sure you use BINARY. Download these files here (580 KB).
    5. Move javamailpr.mbr to a source physical file member.
    6. Move javamail.mbr to a source physical file member and compile it (RPGLE). Be sure to point the /copy to the correct source file.
    7. Move cjavamail.mbr to a source physical file member and compile it (RPGLE).
    8. Move clsmail.mbr to a source physical file member and compile it (CLP).
    9. Move strmail.mbr to a source physical file member and compile it (CLP).
    10. In JavaMail.properties, change email.hosttype to the type of host you use. Change email.hostname to the name or IP address of your SMTP server.
    11. To test, call strmail, then cjavamail, then clsmail.

  5. #5
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Hallo Olli!

    Wenn's funktioniert wenn du angemeldet bist, aber nicht funktioniert wenn jemand anders an derselben Maschine angemeldet ist, kann's vielleicht etwas der folgenden Sachen sein:

    Irgendeine Berechtigung könnte nicht richtig gesetzt sein. Am besten wäre wohl *PUBLIC *USE für alle verwendeten Objekte (entsprechendes für die im IFS).

    Vielleicht ist der andere Benutzer nicht im Systemverzeichnis registriert und das ist Voraussetzung? Sieh mal mit WRKDIRE nach.

    Vielleicht ist die Bibliotheksliste nicht richtig gesetzt. Vergleiche mal deine mir der des anderen Benutzers.

    Viele Grüße
    Jürgen

  6. #6
    Registriert seit
    Jun 2004
    Beiträge
    40
    Die Anleitung liegt mir auch vor.

    Wie gesagt: Wenn ich das ganze ausführe läuft es, von daher hab ich auch erstmal das Java PTF nicht installiert.
    Ruft ein "gewöhnlicher" User das Programm auf, bricht es mit o.g. Fehlermeldungen ab.
    Ich vermute eher, dass das ein Berechtigungsproblem ist... Im Userprofile steht bei mir die Benutzerklasse *PGMR bei einem normalen User steht halt *USER.
    Unter dem User QSYSOPR bricht das ganze übrigens auch mit o.g. Fehlermeldungen ab.

    Nun ja. Ich werde dann mal abwarten, bis ich das PTF hab und dann mal schaun, ob es nach Installation läuft.

  7. #7
    Registriert seit
    Jun 2004
    Beiträge
    40
    @Pikachu:

    Ich tippe auch auf ein Berechtigungsproblem...

    Der User ist nämlich im Systemverzeichnis registriert (WRKDIRE) und die Bibliotheksliste steht auch richtig...

    Die Objekte die zum JavaMail API gehören und die ich ins IFS kopiert habe (Ordner JavaUtil) haben für *PUBLIC die gleichen Berechtigungen, wie ich sie habe...

    Der Fehler lautet ja, dass die Klasse "MIFunctions" nicht gefunden werden kann... das ist keine Klasse, die mit dem JavaMail API kommt. Muss also standardmässig irgendwie auf der Maschine vorhanden sein. Wo kann ich die z.B. finden ?

  8. #8
    Registriert seit
    Jun 2004
    Beiträge
    40
    Guten Morgen allerseits,

    leider muss ich diesen Thread nochmal aufwärmen

    Ich habe gestern die Java-Gruppen-PTF's installiert und das Problem ist leider immer noch das gleiche.

    Bin ich angemeldet, wird die Mail ohne Probleme verschickt. Ist ein anderer User angemeldet, bekommt er eine Programmnachricht: "Zeiger- oder Parameterfehler (C G D F)."

    Die Einträge im JOBLOG:
    Klasse MIFunctions kann nicht gefunden werden.
    Klasse MIFunctions kann nicht gefunden werden.
    Zeiger für angegebene Position nicht gesetzt.
    Zeiger für angegebene Position nicht gesetzt.
    Zeiger- oder Parameterfehler (C G D F).
    C
    Zeiger- oder Parameterfehler (C G D F).
    C
    Anwendungsfehler. MCH3601 nicht überwacht durch QRNXUTIL bei Anweisung
    0000000001, Instruktion X'0000'.

    Jetzt hab ich auf das Programm JAVAMAIL mal den Debugger gestartet und bin Step für Step (F10) vorgegangen.


    0044.00 * Create String objects from the alphanumeric constants
    0045.00
    0046.00 c IF from <> ' ' and to <> ' '
    0047.00 C Eval sFrom = newString(%trim(from))
    0048.00 C Eval sTo = newString(%trim(to))
    0049.00
    0050.00 C IF replyTo = ' '
    0051.00 C Eval sReplyTo = newString(' ')

    Das Programm steigt bei Folge 47.00 aus. Also bei nem stinknormalen Eval...
    Hat irgendjemand ne Idee, was das sein könnte ???
    Das Javamail-API setzen ja einige ein, wie ich hier im Forum ja bereits mehrfach lesen konnte. Vielleicht hat ja jmd. ähnliche Erfahrungen gemacht...

    mfG
    O. Hölscher

    P.S. Habe auch mittlerweile die Userklasse des Users entsprechend meiner geändert und auch Sonderberechtigungen so gesetzt, wie ich sie habe... ohne Erfolg !
    Scheint also doch kein Berechtigungsproblem zu sein !

  9. #9
    Registriert seit
    May 2002
    Beiträge
    2.643

    MIfunctions

    Hallo Olli,
    hast Du schon einmal aufgrund der Fehlermeldungen
    überprüft, ob die Klasse vorhanden ist:

    Überprüfen Sie die Datei MIFunctions.class:
    /qibm/proddata/os400/java400/com/ibm/as400/jvm
    Wenn es den java400-Ordner nicht gibt, installieren Sie bitte 5722SS1, Option 3 erneut.

    Thema Berechtigungen:

    das Root Verzeichnis sollte *RX haben und
    das Verzeichnis:
    Hier sollte grundsätzlich jeder zu berechtigt sein:
    QIBM/ProdData/OS400/Java400/com/ibm/as400/jvm/MIFunctions.class

  10. #10
    Registriert seit
    Jun 2004
    Beiträge
    40
    Hallo Tarasik,

    hatte ich bisher nicht gemacht, da ich nicht wusste, wo ich nachschauen sollte...

    Danke für den Hinweis.
    Habe das jetzt mal kontrolliert und die Klasse existiert.

    Olli

  11. #11
    Registriert seit
    May 2002
    Beiträge
    2.643

    Berechtigungen

    Hallo Olli,
    wegen den Berechtigungen siehe Beitrag zuvor.

  12. #12
    Registriert seit
    Jun 2004
    Beiträge
    40
    Dankeschön !
    War also tatsächlich ein Berechtigungsproblem (Verzeichnis QIBM: *PUBLIC *EXCLUDE)

    Gruß,
    Olli

Similar Threads

  1. Probleme API QUSLJOB aufzurufen
    By TMusolf in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 25-01-07, 12:42
  2. javamail api
    By jogisarge in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 22-11-06, 16:02
  3. API für die Ermittlung aktiver Jobs
    By lyrics in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 29-08-06, 09:03
  4. mal wieder JavaMail API
    By Olli1 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 15-02-05, 13:25
  5. JavaMail API
    By tomikra in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 30-08-04, 07:13

Berechtigungen

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