Richard,
Thanks for taking a look at my problem.
I have a symbolic link of "/java" to "/iasp1/java". So, they should be the same. I changed the CLASSPATH value in the RPGLE, now the results of WRKENVVAR are:
Display Environment Var (*JOB)
Name . . . . . . . . . : CLASSPATH
Value . . . . . . . . . : '/iasp1/java/prcExample/rpgExample.jar'
The results were the same.
Do you have any other thoughts?
-----Original Message-----
From: JAVA400-L <java400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Richard Schoen
Sent: Sunday, October 6, 2024 12:12 PM
To: java400-l@xxxxxxxxxxxxxxxxxx
Subject: RE: Need help with RNX0301 error -- CLASSPATH or signature error
You specified: /iasp1/java/prcExample/rpgExample.jar on your env variable.
And this has: CLASSPATH '/java/prcExample/rpgExample.jar'
2nd one missing /iasp1
Not sure if that's relevant but inconsistent.
Regards,
Richard Schoen
Web:
http://www.richardschoen.net/
Email: richard@xxxxxxxxxxxxxxxxx
----------------------------------------------------------------------
message: 1
date: Sun, 6 Oct 2024 16:24:59 +0000
from: "Blalock, Bill via JAVA400-L" <java400-l@xxxxxxxxxxxxxxxxxx>
subject: Need help with RNX0301 error -- CLASSPATH or signature error
I am trying to call Jave from RPGLESRC. I keep running into RNX0301 when executing the RPGLE program. I have been at it 3 days and sure could use some guidance.
Message . . . . : Java exception received when calling Java method.
Cause . . . . . : RPG procedure PRCPWDIRG in program BLALOCK/PRCPWDIRG
received Java exception "java.lang.NoClassDefFoundError:rpgExample.Item" when calling
method "<init>" with signature "()V" in class "Item".
I tried for two days to get past this error with my own class and RPG. Yesterday I decided to see if I could make RPGLE and Java work together with an example from the Internet.
https://www.mysamplecode.com/2011/06/call-java-from-rpgle-explanation-with.html This is a well thought out example.
I wanted to eliminate coding errors in my RPGLE and Java, to minimize the possibility that this is a signature error. Still getting the same error.
I created an Eclipse project, rpgExample. I copied the Java source from the example into two files, Item.java and GetItem.java. In Eclipse I exported them to the IFS as a jar file, named rpgExample.jar. The destination was /iasp1/java/prcExample. So now I have the jar in /iasp1/java/prcExample/rpgExample.jar.
I create the RPGLE program as BLALOCK/QRPGLESRC (PRCPWDIRG). I changed the package name from "com.as400samplecode" to match my package name of "rpgExample" in both Java and RPGLE.
I used this statement at the top of the RPGLE program:
cmdString = 'ADDENVVAR ENVVAR(CLASSPATH) ' +
'VALUE(''/iasp1/java/prcExample/rpgExample.jar'')' +
'REPLACE(*YES)';
runCmd(cmdString);
I checked the value of CLASSPATH after executing the program with WRKENVVAR. The value was
CLASSPATH '/java/prcExample/rpgExample.jar'
That is what I expected. I checked the CLASSPATH with WRKLNK. It was found.
The execution fails with the RNX0301 error.
I cannot understand what is going on. I'd appreciate some advice. I can send the source code to you.
Thanks
--
This is the Java Programming on and around the IBM i (JAVA400-L) mailing list To post a message email: JAVA400-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/java400-l.
The information contained in this message is proprietary and/or confidential. If you are not the intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, please be aware that any message addressed to our domain is subject to archiving and review by persons other than the intended recipient. Thank you.
Message Encrypted via TLS connection
As an Amazon Associate we earn from qualifying purchases.