It's interesting that your class path is
Work with Environment Vars (*JOB)
.:/JAVA:/JAVA/TOOLS:/JAVA/REPORTS:/JAVA/jt400.jar:
But your class is at "java/Reports"
I'm not sure if this will make a difference, but perhaps your JVM is now case sensitive. That would mean that it's trying to find "/JAVA/REPORTS" instead of "/java/Reports".
Could you please post the command line that runs your java program? If it's a short CL, you could post it here, also.
Luis
-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx [mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of MichaelH@xxxxxxxx
Sent: Monday, January 28, 2008 11:03 AM
To: Java Programming on and around the iSeries / AS400
Subject: RE: Another "java.lang.NoSuchMethodError" question
writeDetailRows is in the LastTwoST.class that is in the IFS here:
java/Reports
The only thing I'm aware that has changed recently was me recompiling a
SendMailN.class in the IFS java folder.
"Luis Colorado" <LuisC@xxxxxxxxxxxxxxxx>
Sent by: java400-l-bounces@xxxxxxxxxxxx
01/28/2008 10:59 AM
Please respond to
Java Programming on and around the iSeries / AS400
<java400-l@xxxxxxxxxxxx>
To
"Java Programming on and around the iSeries / AS400"
<java400-l@xxxxxxxxxxxx>
cc
Subject
RE: Another "java.lang.NoSuchMethodError" question
Maybe something changed and you were not aware of it (I'm just saying).
Do you know where is this method (writeDetailRows)? I mean, in what class?
Where is the class in the IFS?
-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx
[mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of Aaron Bartell
Sent: Monday, January 28, 2008 10:46 AM
To: 'Java Programming on and around the iSeries / AS400'
Subject: RE: Another "java.lang.NoSuchMethodError"
question
If nothing has changed with the Java I would wager to guess it has to do
with the JVM already being started up. Note that you can only have one
JVM
started per job and after it is started the classpath can't be modified.
That means that if a user produced an email with JavaMail (for instance)
and
then tried to run your reports Java stuff, the setting of the classpath
the
second time around wouldn't actually do anything because the JVM was
already
started in that job.
In the process that has started to not work, try signing off and back on
to
see if that fixes it.
Some ways to work around this would be to submit a job to batch that
listens
on a data queue and processes all of the requests for Java like that, the
other approach would be to set your classpath with ALL .jar files
necessary
for any Java process.
HTH,
Aaron Bartell
http://mowyourlawn.com
-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx
[mailto:java400-l-bounces@xxxxxxxxxxxx]
On Behalf Of MichaelH@xxxxxxxx
Sent: Monday, January 28, 2008 8:11 AM
To: java400-l@xxxxxxxxxxxx
Subject: Another "java.lang.NoSuchMethodError" question
I've seen a lot of posts about this, but I still can't make heads or tails
of it. I have a couple of programs that started throwing these exceptions
lately. I "don't think anything has changed" with these programs or this
class, but I did have a friend walk me through re-compiling a different
class a few weeks ago. I have a feeling it's more than a coincidence.
Here's what I am seeing:
Work with Environment Vars (*JOB)
.:/JAVA:/JAVA/TOOLS:/JAVA/REPORTS:/JAVA/jt400.jar:
================================
Additional Message Information
Message ID . . . . . . : RNX0301 Severity . . . . . . . : 50
Message type . . . . . : Escape
Date sent . . . . . . : 01/28/08 Time sent . . . . . . : 08:53:01
Message . . . . : Java exception received when calling Java method.
Cause . . . . . : RPG procedure PID06 in program KENPROD/PID06 received
Java
exception "java.lang.NoSuchMethodError: writeDetailRows" when calling
method
"writeDetailRows" with signature
"(Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;Lj
ava.lang.String;Ljava.lan" in class "Reports.LastTwoST".
Recovery . . . : Contact the person responsible for program maintenance
to
determine the cause of the problem.
Technical description . . . . . . . . : If the exception indicates that
the
Java class was not found, ensure the class for the method is in the
class
path. If the exception indicates that the Java method was not found,
check
the method name and signature. If the signature is not correct, change
the
RPG prototype for the method, or change the Java method, so that the
return
type and parameter types match. You can determine the signatures for all
the
methods in class XYZ using command QSH CMD('javap -s XYZ').
==========================
Compiled from "LastTwoST.java"
public class Reports.LastTwoST extends java.lang.Object{
public Reports.LastTwoST();
Signature: ()V
public Reports.LastTwoST(java.lang.String);
Signature: (Ljava/lang/String;)V
public Reports.LastTwoST(java.lang.String,java.lang.String);
Signature: (Ljava/lang/String;Ljava/lang/String;)V
public void
writeHeader(java.lang.String,java.lang.String,java.lang.String);
Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
public void writePageHeader(java.lang.String);
Signature: (Ljava/lang/String;)V
public void writeAtsFooter(java.lang.String);
Signature: (Ljava/lang/String;)V
public void writeImage(java.lang.String);
Signature: (Ljava/lang/String;)V
public void
writeDetailRows(java.lang.String,java.lang.String,java.lang.String,java.lang
.String,java.lang.String,java.lang.String
,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.la
ng.String,java.lang.String,java.lang.String);
Signature:
(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lja
va/lang/String;Ljava/lang/String;Ljava/l
ang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/
String;Ljava/lang/String;Ljava/lang/String;)V
public void writeDetailTable();
Signature: ()V
public com.lowagie.text.Phrase getFPhrase(java.lang.String);
Signature: (Ljava/lang/String;)Lcom/lowagie/text/Phrase;
public com.lowagie.text.pdf.PdfPCell getImage(java.lang.String);
Signature: (Ljava/lang/String;)Lcom/lowagie/text/pdf/PdfPCell;
public void createDocument(java.lang.String);
Signature: (Ljava/lang/String;)V
public void createDocument(java.lang.String,java.lang.String);
Signature: (Ljava/lang/String;Ljava/lang/String;)V
public void closeDocument();
Signature: ()V
public void newPage();
Signature: ()V
public com.lowagie.text.pdf.PdfPTable getHeaderTable1();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getHeaderTable2();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getHeaderTable3();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getDetailTable1();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getDetailTable2();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getFooterTable1();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getFooterTable2();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getImageTable();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getOuterTable();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPTable getAtsFooterTable();
throws com/lowagie/text/DocumentException
Signature: ()Lcom/lowagie/text/pdf/PdfPTable;
public com.lowagie.text.pdf.PdfPCell getEmptyCell();
Signature: ()Lcom/lowagie/text/pdf/PdfPCell;
public com.lowagie.text.pdf.PdfPCell getHeaderCell();
Signature: ()Lcom/lowagie/text/pdf/PdfPCell;
static {};
Signature: ()V
}
===========================
As an Amazon Associate we earn from qualifying purchases.