Lieber Herr Fuchs,
On 21.01.2021 19:28, fabian-fuchs@a1.net wrote:
beim Versuch das Beispiel aus der Bachelorarbeit, bezüglich Emails verschicken, nachzubauen, kommt es bei mir leider zu folgender Fehlermeldung:
*-* Compiled routine "BSF".
*-* Compiled method "CALLWITH" with scope "Routine".
1930 *-* return bsf.wrap(self~class~rBSF~callWith(arr)) -- process result and return it
23 *-* transport~sendMessage(msg,msg~getRecipients(type~to))
Error 40 running C:\Users\Fabi\Desktop\mail\Test2\Versuch 8000.rexx line 23: Incorrect call to routine.
Error 40.900: BSF4ooRexx/routine/BSF(), error 3: Java exception occurred: [org.apache.bsf.BSFException: BSF4ooRexx subfunction "invoke": ? bean: [smtp://username@localhost:1025 smtp://username@localhost:1025] --> type: <com.sun.mail.smtp.SMTPTransport>? method: [SENDMESSAGE] not found or execution error!?? -> check method name=[SENDMESSAGE] (caseless o.k., but correct spelling?)? -> check supplied arguments (correct number, correct types?):? arg # 1: Rexx argument=[javax.mail.internet.MimeMessage@19e1916] --> Java value="javax.mail.internet.MimeMessage@19e1916 mailto:javax.mail.internet.MimeMessage@19e1916" type=<javax.mail.internet.MimeMessage>? arg # 2: Rexx argument=[[Ljavax.mail.internet.InternetAddress;@18cccef] --> Java value="[Ljavax.mail.internet.InternetAddress;@18cccef" type=<[Ljavax.mail.internet.InternetAddress;>?].
Die Methode sendMessage wird leider nicht ausgeführt. Weiß jemand woran das liegen könnte?
Das kann Ihnen wahrscheinlich mangels ausreichender Informationen niemand sagen.
Sie sollten zumindest folgende Kontextinformationen geben:
* Versionsinformationen, z.B. das, was "say .bsf4rexx~display.version" anzeigt * den Rexxcode, der zum Aufruf führt
Wenn Sie annehmen, dass der Fehler auf der Javaseite erzeugt wird, dann kann es sein, dass dort eine Kette von ineinanderverschachtelten Java-Exceptions angelegt wird. Damit Sie diese zu Gesicht bekommen, könnten Sie in Ihrem Rexx-Programm ein "signal on syntax" vor der Anweisung, die den Fehler erzeugt, schreiben und dann am Ende des Programmabschnitts folgenden Code einfügen:
... code ... signal on syntax -- vor der Anweisung, die den Fehler erzeugt transport~sendMessage(msg,msg~getRecipients(type~to)) ... code ... return syntax: -- Sprungmarke für "signal on syntax" co=condition("object") say ppJavaExceptionChain(co) -- display Java exception chain exit -1
Sie sollten damit zumindest die Kette der Java-Exceptions sehen, was in den meisten Fällen sehr hilfreich ist.
Wenn Sie den Java-Stacktrace sehen wollen (kann weitere Einsichten mit sich bringen), fügen Sie einfach ein zweites Argument .true ein: "say ppJavaExceptionChain(co,.true)".
Verlasse jetzt mein Büro, kann Ihnen also selbst nicht mehr helfen. Aber ich rechne mit Ihren StudienkollegInnen! :)
Viel Erfolg!
Mit freundlichem Gruß
Rony G. Flatscher
-- __________________________________________________________________________________
Prof. Dr. Rony G. Flatscher Department Wirtschaftsinformatik und Operations Management Institut für Wirtschaftsinformatik und Gesellschaft D2c 2.086 WU Wien Welthandelsplatz 1 A-1020 Wien/Vienna, Austria/Europe
http://www.wu.ac.at __________________________________________________________________________________