|
Still getting errors when calling JAVA from within RPG. I tried to
add the STATIC keyword (methods are all static) without success.
********************************************************************
STILL GET FOLLOWING ERROR WHEN RPG-PROG IS CALLED
Message ID . . . . . . : RNQ0301
Date sent . . . . . . : 22/02/02 Time sent . . . . . . :
09:51:45
Message . . . . : Java exception received when calling Java method (C G
D
F).
Cause . . . . . : RPG procedure SNDSMTP in program SNDSMTP/PGOOVAERTS
received Java exception "java.lang.NoSuchMethodError: openSmtpMessage"
when
calling method "openSmtpMessage" with signature
"(Ljava.lang.String;)Lcom.company.tools.SendSmtpMail;" in class
"com.company.tools.SendSmtpMail".
Recovery . . . : Contact the person responsible for program maintenance
to
determine the cause of the problem.
Possible choices for replying to message . . . . . . . . . . . . . . . :
D -- Obtain RPG formatted dump.
S -- Obtain system dump.
********************************************************************
********************************************************************
CLASSPATH IS SET AS FOLLOWS AT JOBLEVEL:
'ADDENVVAR' with following routing :'.:/mylib/classes/'
Class is found at '/mylib/classes/com/company/tools/SendSmtpMail.class'
********************************************************************
********************************************************************
THIS IS HOW IT IS CODED IN RPG
...
* Declare Object Reference variable and String Object Variables
D obj_ref S O CLASS(*JAVA:'com.company.tools.+
D SendSmtpMail')
D string S O CLASS(*JAVA:'java.lang.String')
D openP1 S O CLASS(*JAVA:'java.lang.String')
...
* Prototype Procedure to create java String object
D newString PR O EXTPROC(*JAVA:'java.lang.String':
D *CONSTRUCTOR)
D CLASS(*JAVA:'java.lang.String')
D charParm 100A CONST VARYING
* Prototype Procedure to instantiate 'sendSmtpMail' class
D sndSmtpObj PR O EXTPROC(*JAVA:'com.company.tools.+
D SendSmtpMail':*CONSTRUCTOR)
* Prototype Procedure to open the 'sendSmtpMail' mail
D openSmtpObj PR O EXTPROC(*JAVA:'com.company.tools.+
D SendSmtpMail':'openSmtpMessage')
D CLASS(*JAVA:'com.company.tools.+
D SendSmtpMail')
D STATIC
D charParm1 LIKE(string)
...
...
C/FREE
eval openP1 = newString('user');
eval obj_ref = sndSmtpObj();
openSmtpObj(openP1); // tried CALLP openSmtpObj(openP1) also.
/END-FREE
********************************************************************
********************************************************************
THIS IS HOW IT IS CODED IN VA-JAVA
import java.io.*;
import sun.net.smtp.SmtpClient;
public class SendSmtpMail
{
static final String mailServer = "10.0.0.1";
static final String fromAdress = "PGO";
static final String id = "AS400-SEND-MAIL";
static public String toAdress = new String("PGO");
static public String messageTo;
static public String messageCc;
static public String messageBc;
static public String messageSubject;
static public SmtpClient smtp;
static public PrintStream msg;
}
public SendSmtpMail()
{
super();
}
public static void openSmtpMessage(String sendTo)
{
setToAdress(sendTo);
// Create new MailMessage
try
{
smtp = new SmtpClient(getMailServer());
smtp.from(getFromAdress());
smtp.to(getToAdress());
msg = smtp.startMessage();
}
catch (IOException e)
{
// Write CreateMailError
Debug.println(DEBUG_LEVEL, id,
"SendSmtpMail_createSmtpMessage", "There was a problem creating mail");
e.printStackTrace();
}
}
THIS IS HOW IT IS TESTED (and works) IN JAVA
Public static void main(String[] args)
{
// Open message
openSmtpMessage("user");
// Create messageHeader
setMessageTo("emailadress");
setMessageSubject("subject");
writeSmtpLine("To:", getMessageTo());
writeSmtpLine("Subject:", getMessageSubject());
// Create messageText
writeSmtpLine("Text", "dataline1");
writeSmtpLine("Text", "dataline2");
writeSmtpLine("Text", "dataline3");
// Close message
closeSmtpMessage();
}
...
...
********************************************************************
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.