Anmelden

View Full Version : email mit java



Seiten : 1 [2] 3 4

KM
28-10-04, 13:20
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

muadeep
28-10-04, 13:52
Wie kann ich den festellen ob die JVM beschädigt ist
bzw. wie kann ich sie neu installieren (reparieren)?

BenderD
28-10-04, 14:02
Hallo,

Group PTF Stand könnte immer noch Kandidat sein.
Hast du folgende Datei bei dir:
/QIBM/UserData/Java400/SystemDefault.properties
oder
/home/userid/SystemDefault.properties
oder gibt es sonstwo bei dir Dateien mit dem Namen SystemDefault.properties? wenn ja dann poste mal den Inhalt.
Die Frage mit den vorherigen Java Aufrufen im gleichen Job ist noch offen!

mfg

Dieter Bender


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?

muadeep
29-10-04, 07:41
Also unter /QIBM/UserData/Java400/ und unter /home/userid/
habe ich die Datei "SystemDefault.properties" nicht gefunden!

Kann ich den z.b. mit WRKLNK nach einer bestimmten Datei suchen lassen?

ich hab einfach mal so in den Verzeichnissen rumgeschaut, da hab ich folgende Datei gefunden
/QIBM/ProdData/Java400/SystemDefaultCacheExample.properties
Weiß aber nicht, ob die mit der gewünschen was zu tun hat?

Ich poste sie trotzdem mal!
os400.define.class.cache.file=/QIBM/ProdData/Java400/QDefineClassCache.jar
os400.define.class.cache.hours=168
os400.define.class.cache.maxpgms=5000

Die Frage mit den vorherigen Java Aufrufen im gleichen Job
kann ich leider nicht beantworten, da ich nicht genau weiß was du damit meinst?

Soll ich dir mal die beiden RPG's mit den Java's aufrufen, Proc., etc. posten oder?

BenderD
29-10-04, 08:38
Hallo,

wenn du dir mal den OS400 Command JAVA (oder runjva) anschaust, da gibt es einen Parameter CHKPATH, der Einstellungen an der JVM vornimmt. Dieser Parameter steht im default auf *WARN, aber dein Programm verhält sich so, als ob der auf *SECURE stünde. Nun wird aber beim Aufruf von Java aus rpg die JVM automatisch gestartet, aber nur beim ersten Java Aufruf innerhalb des Jobs; ich will halt ausschließen, dass da bereits vorher was passiert.
Normal wird der CHPATH eingestellt über den Parameter von JAVA oder RUNJVA, über die SystemDefault.properties, die in QIBM... oder im Benutzerverzeichnis gesucht werden; das von dir gefundene ist dabei nicht im Spiel. Suchen kann man Dateien nach Namen von der Qshell, oder mit dem Explorer und gemappter AS400, wenn der Netserver eingerichtet ist.
Eine weitere Möglichkeit an den JVM Parametern rumzuschrauben beommt man auch mit Java Native Interface hin. Das tückische ist halt, dass es sein kann, dass ein anderes Programm vorher verdrechsellt hat und Stunden später ein völlig anderes Programm zusammen bricht - ich weiss schon warum ich immer sage: Finger weg von diesem Unfug!!!

mfg

Dieter Bender



Also unter /QIBM/UserData/Java400/ und unter /home/userid/
habe ich die Datei "SystemDefault.properties" nicht gefunden!

Kann ich den z.b. mit WRKLNK nach einer bestimmten Datei suchen lassen?

ich hab einfach mal so in den Verzeichnissen rumgeschaut, da hab ich folgende Datei gefunden
/QIBM/ProdData/Java400/SystemDefaultCacheExample.properties
Weiß aber nicht, ob die mit der gewünschen was zu tun hat?

Ich poste sie trotzdem mal!
os400.define.class.cache.file=/QIBM/ProdData/Java400/QDefineClassCache.jar
os400.define.class.cache.hours=168
os400.define.class.cache.maxpgms=5000

Die Frage mit den vorherigen Java Aufrufen im gleichen Job
kann ich leider nicht beantworten, da ich nicht genau weiß was du damit meinst?

Soll ich dir mal die beiden RPG's mit den Java's aufrufen, Proc., etc. posten oder?

muadeep
29-10-04, 12:09
so, habe mal mit der QSHELL
und dem Befehl "find * | grep SystemDefault"
nach der Datei "SystemDefault.properties" suchen lassen!
(hoffe der Befehl stimmte so?)

das einzige, was gefunden wurde war dies:
QIBM/ProdData/Java400/SystemDefaultCacheExample.properties

aber die hat ja damit leider nicht's zu tun!

wie sollte denn die SystemDefault.properties" aussehen?
kann/muß ich die nachträglich installieren?
Fehlt mir vieleicht was bestimmtes auf meinem System?
Sollen noch bestimmte Daten/Programme auf der AS400 installiert werden?

BenderD
29-10-04, 12:26
Hallo,

das heißt dass es daran nicht liegt, der default ist ja richtig. Ich wollte nur sicher gehen, dass da nicht irgendwo eine Einstellung umgeknipst wird.
Was kriegst du denn bei dem OS400 Command Java für einen default für
den Parameter CHKPATH angezeigt?
Hast du irgendeinen funktionierenden Java Aufruf aus RPG auf eine kleine Testklasse, oder geht das immer schief?

mfg

Dieter Bender


so, habe mal mit der QSHELL
und dem Befehl "find * | grep SystemDefault"
nach der Datei "SystemDefault.properties" suchen lassen!
(hoffe der Befehl stimmte so?)

das einzige, was gefunden wurde war dies:
QIBM/ProdData/Java400/SystemDefaultCacheExample.properties

aber die hat ja damit leider nicht's zu tun!

wie sollte denn die SystemDefault.properties" aussehen?
kann/muß ich die nachträglich installieren?
Fehlt mir vieleicht was bestimmtes auf meinem System?
Sollen noch bestimmte Daten/Programme auf der AS400 installiert werden?

muadeep
29-10-04, 12:58
also mit dem Command "Java" erhalte ich folgendes


Java-Programm ausführen (JAVA)

Auswahl eingeben und Eingabetaste drücken.

Klassendatei oder JAR-Datei . .

Parameter . . . . . . . . . . . *NONE

+ für weitere Werte

Klassenpfad . . . . . . . . . . *ENVVAR

Zusätzliche Parameter

Sicherh.prüf.stufe Klassenpfad *WARN *WARN, *SECURE, *IGNORE
Weitere ...
F3=Verlassen F4=Bedienerf. F5=Aktualisieren F12=Abbrechen
F13=Verwendung der Anzeige F24=Weitere Tasten


Ich benutze ein Java Programm um mit SQL eine Excelabfrage zu erstellen!
Dieses müßte das Java von Jakarta (POI) benutzen!
Das funkt auf jeden Fall!

Kann dir dazu gerne den RPGLE-Code posten!

BenderD
29-10-04, 13:49
Hallo,

das mit dem default sieht gut aus und der Mechanismus des JVM Starts aus RPG scheint ok zu sein.
Was passiert in deinem Programm mit dem eMail senden denn vorher noch?
in welchem Kontext läuft das Programm? interaktiv oder Batch oder in einem Serverdienst?

mfg

Dieter Bender


also mit dem Command "Java" erhalte ich folgendes


Java-Programm ausführen (JAVA)

Auswahl eingeben und Eingabetaste drücken.

Klassendatei oder JAR-Datei . .

Parameter . . . . . . . . . . . *NONE

+ für weitere Werte

Klassenpfad . . . . . . . . . . *ENVVAR

Zusätzliche Parameter

Sicherh.prüf.stufe Klassenpfad *WARN *WARN, *SECURE, *IGNORE
Weitere ...
F3=Verlassen F4=Bedienerf. F5=Aktualisieren F12=Abbrechen
F13=Verwendung der Anzeige F24=Weitere Tasten


Ich benutze ein Java Programm um mit SQL eine Excelabfrage zu erstellen!
Dieses müßte das Java von Jakarta (POI) benutzen!
Das funkt auf jeden Fall!

Kann dir dazu gerne den RPGLE-Code posten!

muadeep
29-10-04, 14:44
Habe mal versucht in der QSHELL die "JavaMail.java" mit javac umzuwandeln so daß mir die *.class - Datei erstellt wird!
(javac JavaMail.java)

Bekomme dann folgende Fehlermeldungen!
JavaMail.java:7: package javax.mail does not exist
import javax.mail.*;

JavaMail.java:8: package javax.mail.internet does not exist
import javax.mail.internet.*;
^
JavaMail.java:54: cannot resolve symbol
symbol : class Session
location: class JavaMail
Session session = Session.getDefaultInstance(systemProperty, null);
^
JavaMail.java:54: cannot resolve symbol
symbol : variable Session
location: class JavaMail
Session session = Session.getDefaultInstance(systemProperty, null);
:
:
JavaMail.java:88: cannot resolve symbol
symbol : class MessagingException
location: class JavaMail
realException = ((MessagingException)realException).getNextExcepti on();
^
JavaMail.java:92: cannot resolve symbol
symbol : class MessagingException
location: package mail
if (realException instanceof javax.mail.MessagingException)
^
18 errors

hab dann mal nach der "javax.mail" suchen lassen, die ist gar nicht auf meiner AS/400!
genaus wie die "javax.mail.internet"

könnte es veileicht daran liegen?
Fals ja, wo bekomme ich die her und wie muß ich sie installieren!

Im RPGL habe ich folgendes:
H DftActGrp(*NO) ActGrp(*CALLER)
************************************************** ************************
* JavaMail: RPG call Java method to send email *
* *
* 22.03.2004 *
************************************************** ************************
D Class1 C 'JavaMail'
D Class2 C 'JavaMailwithAttachment'

/Copy QRPGLESRC,JAVAMAILPR

D from S 50
D to S 50
D replyTo S 50
D subject S 50
D text S 9999
D filename S 100
D charRtnCode S 3
D rtnCode S 5I 0
D rtnText S 100

D sFrom S O Class(*JAVA:'java.lang.String')
D sTo S O Class(*JAVA:'java.lang.String')
D sReplyTo S O Class(*JAVA:'java.lang.String')
D sSubject S O Class(*JAVA:'java.lang.String')
D sText S O Class(*JAVA:'java.lang.String')
D sFilename S O Class(*JAVA:'java.lang.String')

**
**
C *entry PList
C Parm from
C Parm to
C Parm replyTo
C Parm subject
C Parm text
C Parm filename
C Parm charRtnCode
C Parm rtnText

* Create String objects from the alphanumeric constants
c If from <> ' ' and to <> ' '
C Eval sFrom = newString(%trim(from))
C Eval sTo = newString(%trim(to))

C If replyTo = ' '
C Eval sReplyTo = newString(' ')
C Else
C Eval sReplyTo = newString(%trim(replyTo))
C EndIf

C If subject = ' '
C Eval sSubject = newString(' ')
C Else
C Eval sSubject = newString(%trim(subject))
C EndIf

C If text = ' '
C Eval sText = newString(' ')
C Else
C Eval sText = newString(%trim(text))
C EndIf

C If filename = ' '
C Eval rtnCode = sendMail1(sFrom:sTo:sReplyTo:
C sSubject:sText)
C Else
C Eval sFilename = newString(%trim(filename))
C Eval rtnCode = sendMail2(sFrom:sTo:sReplyTo:
C sSubject:sText:sFilename)
C EndIf

C Else
C Eval rtnCode = 105
C EndIf

C ExSr $setRtnCode

C Eval *InLR = *On
************************************************** **************
* $SetRtnCode: Set return code *
************************************************** **************
C $SetRtnCode BegSr

C Select
C When rtnCode = 0
C Eval rtnText = 'Send mail completed.'
C When rtnCode = 100
C Eval rtnText = 'Email property file not found.'
C When rtnCode = 101
C Eval rtnText = 'javax.mail.MessagingException'
C When rtnCode = 102
C Eval rtnText = 'java.net.ConnectException'
C When rtnCode = 103
C Eval rtnText = 'java.net.UnknownHostException'
C When rtnCode = 104
C Eval rtnText = 'Attachment file not found!'
c When rtnCode = 105
c Eval rtnText = 'Email address not found!'
C When rtnCode = 999
C Eval rtnText = 'Run time error.'

C EndSl

C Move rtnCode charRtnCode

C EndSr