[NEWSboard IBMi Forum]
Seite 1 von 3 1 2 ... Letzte

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    309

    email mit java

    Habe irgendwo im Netz eine Beschreibung gefunden, wie man e-mails mit RPG(LE) versenden kann!

    Habe dann im IFS folgende Verzeichnisse erstellt!

    /java
    -> demo DIR
    -> jaf DIR
    -> jafamil DIR

    im Verz. /java/demo befindet sich der Java-Source-Code
    -> Mailer.java STMF

    der Kopf siehst so aus:
    package demo;

    import java.io.InputStream;

    import java.util.Date;
    import java.util.Properties;

    import javax.activation.DataHandler;
    import javax.activation.DataSource;
    :
    :

    wenn ich jetzt mit QShell die *.jar File erstellen will
    qsh
    cd /java
    javac -classpath '.:/java/javamail/mail.jar:/java/jaf/activation.jar' demo/Mailer.java

    dann schaut mein Java-Verzeichnis (/java/demo) wie folgt aus:
    -> Mailer.class STMF
    -> Mailer.java STMF
    -> Mailer$1.class STMF

    Ich dachte eigentlich, daß jetzt das Java-Programm kompalliert wurde!

    Doch als ich mein RPGLE aufrufen wollte, bekam ich einen Programmabbruch!

    Nachrichten-ID . . . . : RNQ0301 Bewertung . . . . . . : 99
    Nachrichtenart . . . . : Anfrage
    Sendedatum . . . . . . : 27.10.04 Sendezeit . . . . . . : 13:55:14

    Nachricht . . . : Java-Ausnahme beim Aufrufen der Java-Methode empfangen (C
    G D F).
    Ursache . . . . : RPG-Prozedur MAILERDEMO in Programm xxx/MAILERDEMO hat
    Java-Ausnahme "java.lang.SecurityException: Prohibited package name:
    java.demo" empfangen, als die Methode "sendSimpleMail" mit Kennung
    "(Ljava.lang.String;Ljava.lang.String;Ljava.lang.S tring;Ljava.lang.StringL
    java.lang.String;" in Klasse "demo.Mailer" aufgerufen wurde.
    Fehlerbeseitigung: Mit Hilfe des Benutzers, der für die Programmpflege
    verantwortlich ist, die Fehlerursache bestimmen.

    Ich mußte dann vestellen, das beim Umwandeln des Java-Programms (mit QShell) ein JOBLOG erstellt wurde´!
    Dieses sieht wie folgt aus:

    5722SS1 V5R2M0 020719 Jobprotokoll BHSWHR 27.10.04 13:51:25 Seite 1
    Jobname . . . . . . . . . . : QP0ZSPWP Benutzer . . . . : Qxxxxxxxxxx Nummer . . . . . . . . . . . : 655241
    Jobbeschreibung . . . . . . : QDFTJOBD Bibliothek . . . : QGPL
    NACHR-ID ART BEW DATUM ZEIT VON PGM BIBLIOTHEK INST AN PGM BIBLIOTHEK INST
    CPF1124 Information 00 27.10.04 13:51:23,279656 QWTPIIPP QSYS 05D4 *EXT *N
    Message . . . . : Job 655241/Qxxxxxxxxx/QP0ZSPWP im Subsystem QINTER in QSYS
    am 27.10.04 um 13:51:23 gestartet. Job im System am 27.10.04 um 13:51:23.
    angekommen.
    JVAB529 Diagnostic 40 27.10.04 13:51:23,430152 QJVAUTLJVM QSYS *STMT QJVAJVM QSYS *STMT
    From module . . . . . . . . : QJVAUTLJVM
    From procedure . . . . . . : JvaSendMsg
    Statement . . . . . . . . . : 1391
    To module . . . . . . . . . : RUNJAVA
    To procedure . . . . . . . : RunJava
    Statement . . . . . . . . . : 2298
    Message . . . . : Allgemeine Schreibberechtigung für ".".
    Ursache . . . . : Verzeichnis "." im Klassenpfad hat die allgemeine
    Schreibberechtigung. Haben mehrere Klassendateien in einem Verzeichnis
    denselben Namen, wird die zuerst gefundene Klasse
    ausgeführt.Fehlerbeseitigung: Ist die Stufe für die Sicherheitsprüfung des
    Klassenpfads (CHKPATH) *SECURE, kann der Befehl nicht beendet werden, wenn
    ein Verzeichnis in dem Klassenpfad die allgemeine Schreibberechtigung hat.
    Den Administrator bitten, die allgemeine Schreibberechtigung aus Verzeichnis
    "." zu entfernen, oder CHKPATH ändern, und den Befehl erneut ausführen.Hat
    Verzeichnis "." weiterhin die allgemeine Schreibberechtigung und hat CHKPATH
    nicht den Wert *SECURE, kann geprüft werden, welche Klassen ausgeführt
    werden, indem der Parameter OPTION auf *VERBOSE gesetzt und der Befehl
    erneut ausgeführt wird.

    Ich kann damit leider gar nicht's Anfang!

    Kann mir jemand weiterhelfen?

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo,

    wolltest du mit mehrfach posten der Frage mehr Nachdruck verleihen?
    Mit dem Compile ist eigentlich alles in Ordnung; die Fehlermeldung besagt, dass beim Aufruf was schief geht!, da wird (von der RPG Runtime) ein Parameter benutzt, der besagt, dass die class Dateien für public Berechtigung read only sein sollen; wo die das her hat, das wissen die Götter vermutlich auch nicht.

    mfg

    Dieter Bender


    Zitat Zitat von muadeep
    Habe irgendwo im Netz eine Beschreibung gefunden, wie man e-mails mit RPG(LE) versenden kann!

    Habe dann im IFS folgende Verzeichnisse erstellt!

    /java
    -> demo DIR
    -> jaf DIR
    -> jafamil DIR

    im Verz. /java/demo befindet sich der Java-Source-Code
    -> Mailer.java STMF

    der Kopf siehst so aus:
    package demo;

    import java.io.InputStream;

    import java.util.Date;
    import java.util.Properties;

    import javax.activation.DataHandler;
    import javax.activation.DataSource;
    :
    :

    wenn ich jetzt mit QShell die *.jar File erstellen will
    qsh
    cd /java
    javac -classpath '.:/java/javamail/mail.jar:/java/jaf/activation.jar' demo/Mailer.java

    dann schaut mein Java-Verzeichnis (/java/demo) wie folgt aus:
    -> Mailer.class STMF
    -> Mailer.java STMF
    -> Mailer$1.class STMF

    Ich dachte eigentlich, daß jetzt das Java-Programm kompalliert wurde!

    Doch als ich mein RPGLE aufrufen wollte, bekam ich einen Programmabbruch!

    Nachrichten-ID . . . . : RNQ0301 Bewertung . . . . . . : 99
    Nachrichtenart . . . . : Anfrage
    Sendedatum . . . . . . : 27.10.04 Sendezeit . . . . . . : 13:55:14

    Nachricht . . . : Java-Ausnahme beim Aufrufen der Java-Methode empfangen (C
    G D F).
    Ursache . . . . : RPG-Prozedur MAILERDEMO in Programm xxx/MAILERDEMO hat
    Java-Ausnahme "java.lang.SecurityException: Prohibited package name:
    java.demo" empfangen, als die Methode "sendSimpleMail" mit Kennung
    "(Ljava.lang.String;Ljava.lang.String;Ljava.lang.S tring;Ljava.lang.StringL
    java.lang.String;" in Klasse "demo.Mailer" aufgerufen wurde.
    Fehlerbeseitigung: Mit Hilfe des Benutzers, der für die Programmpflege
    verantwortlich ist, die Fehlerursache bestimmen.

    Ich mußte dann vestellen, das beim Umwandeln des Java-Programms (mit QShell) ein JOBLOG erstellt wurde´!
    Dieses sieht wie folgt aus:

    5722SS1 V5R2M0 020719 Jobprotokoll BHSWHR 27.10.04 13:51:25 Seite 1
    Jobname . . . . . . . . . . : QP0ZSPWP Benutzer . . . . : Qxxxxxxxxxx Nummer . . . . . . . . . . . : 655241
    Jobbeschreibung . . . . . . : QDFTJOBD Bibliothek . . . : QGPL
    NACHR-ID ART BEW DATUM ZEIT VON PGM BIBLIOTHEK INST AN PGM BIBLIOTHEK INST
    CPF1124 Information 00 27.10.04 13:51:23,279656 QWTPIIPP QSYS 05D4 *EXT *N
    Message . . . . : Job 655241/Qxxxxxxxxx/QP0ZSPWP im Subsystem QINTER in QSYS
    am 27.10.04 um 13:51:23 gestartet. Job im System am 27.10.04 um 13:51:23.
    angekommen.
    JVAB529 Diagnostic 40 27.10.04 13:51:23,430152 QJVAUTLJVM QSYS *STMT QJVAJVM QSYS *STMT
    From module . . . . . . . . : QJVAUTLJVM
    From procedure . . . . . . : JvaSendMsg
    Statement . . . . . . . . . : 1391
    To module . . . . . . . . . : RUNJAVA
    To procedure . . . . . . . : RunJava
    Statement . . . . . . . . . : 2298
    Message . . . . : Allgemeine Schreibberechtigung für ".".
    Ursache . . . . : Verzeichnis "." im Klassenpfad hat die allgemeine
    Schreibberechtigung. Haben mehrere Klassendateien in einem Verzeichnis
    denselben Namen, wird die zuerst gefundene Klasse
    ausgeführt.Fehlerbeseitigung: Ist die Stufe für die Sicherheitsprüfung des
    Klassenpfads (CHKPATH) *SECURE, kann der Befehl nicht beendet werden, wenn
    ein Verzeichnis in dem Klassenpfad die allgemeine Schreibberechtigung hat.
    Den Administrator bitten, die allgemeine Schreibberechtigung aus Verzeichnis
    "." zu entfernen, oder CHKPATH ändern, und den Befehl erneut ausführen.Hat
    Verzeichnis "." weiterhin die allgemeine Schreibberechtigung und hat CHKPATH
    nicht den Wert *SECURE, kann geprüft werden, welche Klassen ausgeführt
    werden, indem der Parameter OPTION auf *VERBOSE gesetzt und der Befehl
    erneut ausgeführt wird.

    Ich kann damit leider gar nicht's Anfang!

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

  3. #3
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Also was JavaMail in RPG-Programmen betrifft, da würde ich Dir eher ein anderes Tool empfehlen, das ich selbst ständig benutze und das ohne Probleme läuft. Du kannst es downloaden unter

    http://www.ignite400.org/assets/pdf/...avamailrpg.zip

    Gruß,
    KM

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    309
    Wie immer zunächst mal Danke für eure schnelle Antworten!

    zu "BenderD":
    Wie das mit den 3 Posting's ging weiß ich leider selber nicht!
    Hatte mich darin aber auch gleich entschuldigt! Sorry noch mal

    zu "KM":
    Habe mir die *.zip mal runtergeladen und auch gleich installiert (so wie in Anleitung beschrieben) (ist so ähnlich wie meins)

    Nach dem Aufruf von "JavaMailTest" bekommen ich jetzt folgenden Programmabbruch
    "Java-Ausnahme beim Aufrufen der Java-Methode empfangen (C G D F)"

    Im JobLog steht folgends:
    Allgemeine Schreibberechtigung für ".".
    Java-Ausnahme beim Aufrufen der Java-Methode empfangen.
    Funktionsprüfung. RNX0301 nicht überwacht durch JAVAMAIL bei Anweisung
    0000000135, Instruktion X'0000'.
    Java-Ausnahme beim Aufrufen der Java-Methode empfangen (C G D F).
    Java-Ausnahme beim Aufrufen der Java-Methode empfangen (C G D F).

    Was mache ich bzw. was ist jetzt falsch?
    Wie kann ich die "allgemeine Schreibberechtigung" änder, bzw.
    muß ich daß überhaupt, wenn ja, in was muß ich sie ändern?

  5. #5
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Das scheint dann nicht an den Tools zu liegen, sondern eher an Deinen Berechtigungen. Hast Du den CLASSPATH mit STRMAIL korrekt gesetzt ? Das kannst Du mit WRKENVVAR prüfen. Wie sehen Deine Berechtigungen bzgl. IFS aus ? Kannst Du das mal mit einem Benutzer testen, der *ALLOBJ Rechte hat ?

    Gruß,
    KM

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    309
    Ich habe *ALLOBJ Rechte, daran dürfte es nicht liegen!

    Ob ich den CLASSPATH richtig habe, weiß ich leider nicht
    (bin in Java nicht fit)

    also im STRMAIL steht folgendes:
    PGM

    CHGCURDIR DIR('/JAVAUTIL/JAVAMAIL/')

    ADDENVVAR ENVVAR(CLASSPATH) +
    VALUE('.:/JAVAUTIL/JAVAMAIL/ACTIVATION.JAR:+
    /JAVAUTIL/JAVAMAIL/IMAP.JAR:/JAVAUTIL/JAVAM+
    AIL/MAIL.JAR:/JAVAUTIL/JAVAMAIL/MAILAPI.JAR+
    :/JAVAUTIL/JAVAMAIL/SMTP.JAR:/JAVAUTIL/JAVA+
    MAIL/') REPLACE(*YES)

    ENDPGM


    Mit dem Befehl WRKENVVAR erhalte ich folgendes!
    Mit Umgebungsvariablen arbeiten (*JOB)

    Auswahl eingeben und Eingabetaste drücken.
    1=Hinzufügen 2=Ändern 4=Entfernen 5=Details anzeigen 6=Drucken

    Auswahl Name Wert

    ICU_DATA '/QIBM/ProdData/OS400/icu/data'
    LANG '/QSYS.LIB/DE_DE.LOCALE ' >


    Die *.jar File's ich im folgendem Verzeichnis stehen:
    /JavaUtil/JavaMail

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    309
    Public-Berechtigung der *.class Files habe ich auf "use" gesetzt -> funkt leider auch nicht!

    Wir haben V5.2 installiert

    Wie kann ich den festellen welche Java-Gruppen PTF es sein sollte?


    Hab da mal die Beschreibung, hoffe hier könnt vieleicht damit was anfangen!

    Java E-mail Util. offers the ability for RPG pgm. to send e-mail by calling java method on AS/400.

    The Utility consists of following programs:

    RPGLE: JAVAMAIL - It calls java method to send e-mail.
    CLP: STRMAIL - It changes the 'dir' to '/JAVAUTIL/JAVAMAIL/', and adds 'CLASSPATH' for
    Java classes.
    CLSMAIL - It changes the 'dir' back to '/' and remove the 'CLASSPATH'.

    Java Classes:
    JavaMail.class – It has a method can be called from RPG to send e-mail.
    JavaMailwithAttachment.class – It has method can be called from RPG to send e-mail with
    attachment file.


    The code example for RPGLE program to call JAVAMAIL:
    ************************************************** ***************
    * Program: CJAVAMAIL
    * Date : 02/25/2002
    ************************************************** ***************
    H DftActGrp(*NO) ActGrp(*CALLER)

    D from S 50
    D to S 50
    D replyTo S 50
    D subject S 50
    D filename S 100
    D text S 9999
    D rtnCode S 3
    D rtnText S 50

    C Eval from = 'karlg@ri-net.com'
    C Eval to = 'jamesz@ri-net.com'
    C Eval replyTo = 'bobc@ri-net.com'
    C Eval subject = 'JavaMail Attachment'
    C Eval text = 'james test send file '
    C Eval filename= '/home/test/dataacj2.pdf'

    C call 'JAVAMAIL'
    C parm from
    C parm to
    C parm replyTo
    C parm subject
    C parm text
    C parm filename
    C PARM rtnCode
    C PARM rtnText

    C Eval *InLr = *On


    To send e-mail, in calling program do following:
    1. CALL STRMAIL.
    2. CALL JAVAMAIL(can call it as many times as the user need)
    3. CALL CLSMAIL.

    Files to support JavaMail utility:

    The following files are on RAD in folder '/JavaUtil/JavaMail/' to support the JavaMail.

    Java Jar files:
    activation.jar
    imap.jar
    mail.jar
    mailapi.jar
    pop3.jar
    smtp.jar

    JavaMail property file:
    JavaMail.properties

  8. #8
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Welche Java-Version läuft denn bei Dir (Befehl "QSH" und dann "java -version"? Wir haben z.B. Version "1.3.1". Den Stand der JAVA-PTFs siehst Du mit "WRKPTFGRP SF99169". Wir haben da z.B. den Stand 17 (wobei der wohl auch schon wieder veraltet ist). Also bei uns läuft das Tool so.

    Gruß,
    KM

  9. #9
    Registriert seit
    Aug 2001
    Beiträge
    309
    Die Java Version ist auch die 1.3.1

    beim PTF (WRKPTFGRP SF99169) haben wir den Stand "15"!

  10. #10
    KM is offline [professional_User]
    Registriert seit
    Apr 2003
    Beiträge
    1.005
    Also daran kann's nun auch nicht liegen. Denn wir haben auf unserer zweiten Maschine den Java_PTF Stand 14 und da funktioniert's auch.
    Da scheint doch irgendwas an Deiner JVM faul zu sein.

    Kann Dir jetzt leider auch nicht mehr weiterhelfen.

    Gruß,
    KM

  11. #11
    Registriert seit
    Aug 2001
    Beiträge
    309
    Wie kann ich den festellen ob die JVM beschädigt ist
    bzw. wie kann ich sie neu installieren (reparieren)?

  12. #12
    Registriert seit
    Jul 2001
    Beiträge
    2.646

    PTF Stand

    Zitat Zitat von KM
    Also daran kann's nun auch nicht liegen. Denn wir haben auf unserer zweiten Maschine den Java_PTF Stand 14 und da funktioniert's auch.
    Nur so am Rande erwähnt: Ein höhrerer PTF-Stand muss nicht immer unbedingt Funktionalität garantieren ;-)

    (siehe: V5R3, Level10, SAVSYS)

    -h

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. Java Version
    By Muchi in forum NEWSboard Java
    Antworten: 2
    Letzter Beitrag: 07-11-06, 11:00
  3. Antworten: 3
    Letzter Beitrag: 06-06-06, 15:57
  4. email mit java
    By muadeep in forum NEWSboard Java
    Antworten: 0
    Letzter Beitrag: 27-10-04, 13:07
  5. email mit java
    By muadeep in forum NEWSboard Java
    Antworten: 0
    Letzter Beitrag: 27-10-04, 13:05

Berechtigungen

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