Liebe Kollegen/innen,
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=" mailto:javax.mail.internet.MimeMessage@19e1916 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?
Mit freundlichen Grüßen,
Fabian Fuchs
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 __________________________________________________________________________________
Lieber Herr Fuchs,
noch etwas: Sie verwenden selbst eine Verschachtelung:
... unbekannter code ... transport~sendMessage(msg,msg~getRecipients(type~to)) ...
Es gibt mehrere Möglichkeiten, wo ein Fehler auftreten kann, daher würde ich Ihre Anweisung in mehrere einzelne Anweisungen aufteilen, um die genaue Stelle zu finden, z.B. :
... unbekannter code ... to=type~to res=msg~getRecipients(to) transport~sendMessage(msg,res) ...
Somit können Sie dann die genaue Fehlerstelle eingrenzen und dann weiterschauen.
Mit freundlichem Gruß
Rony G. Flatscher
Liebe Kollgen/innen
Hier die gewünschten Informationen:
1. Rexx Code:
transport = session~getTransport("smtp") transport~connect("localhost",1025,"username","pw") transport~sendMessage(msg,msg~getRecipients(type~to))
2. Signal on Syntax:
showing Java exception chain (trigger exception at bottom) ...
-------> (Java exception # 1) caused by: [org.apache.bsf.BSFException@cddf8f]:
org.apache.bsf.BSFException: BSF4ooRexx subfunction "invoke":
bean: [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;>
<------- (Java exception # 1)
-------> (Java exception # 2) caused by: [java.lang.IllegalStateException@1db1f78]:
java.lang.IllegalStateException: Not connected
<------- (Java exception # 2)
\\\\\\\\\\\\\\\\\\\\ ... end of Java exception chain.
3. Version
ooRexx 5.0.0 r12142 (20 Dec 2020) / BSF 641.20201217 / Java 1.8.0_191, 32-bit / Windows 10.0.18363
Von: Aj2020w aj2020w-bounces@alice.wu-wien.ac.at Im Auftrag von Rony G. Flatscher Gesendet: Donnerstag, 21. Jänner 2021 19:45 An: aj2020w@alice.wu-wien.ac.at Betreff: Re: [Aj2020w] Method not found
Lieber Herr Fuchs,
On 21.01.2021 19:28, fabian-fuchs@a1.net mailto: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=" mailto:javax.mail.internet.MimeMessage@19e1916 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 ____________________________________________________________________________ ______