Michael,
Thank you for sending the code, it helped to clarify things. Here's my take on this so far:
If I understand correctly, you just re-compiled the code, and this started to fail.
Well, it seems to me that your original java program LastTwoST.java was changed at one point between this new compilation and the previous compilation. That is, that your were running a java class which source code was modified after it got compiled.
Please check the change date of the file LastTwoST.java. My hypothesis here is that somebody modified the source code, but didn't compile it, so maybe you were running this for months or years, without suspecting that the source code was modified. Apparently, when you re-compiled, you didn't re-compile the original source code, but some modified source code.
Why do I think this? Because the error thrown says that the proper version of the method writeDetailRows was not found, however, you are not calling that method directly, you are calling writeHeader. Apparently writeHeader is calling (directly or undirectly) writeDetailRows. Since both writeHeader and writeDetailRows are in the same source file, there is no chance that the problem is the class path. So maybe the call to writeDetailRows has an error.
Please let me know if that makes sense.
Luis
 -----Original Message-----
From: 	java400-l-bounces@xxxxxxxxxxxx [mailto:java400-l-bounces@xxxxxxxxxxxx]  On Behalf Of MichaelH@xxxxxxxx
Sent:	Monday, January 28, 2008 2:23 PM
To:	Java Programming on and around the iSeries / AS400
Subject:	RE: Another "java.lang.NoSuchMethodError" question
Here's the RPG code. 
The class in the IFS is:   java/Reports/LastTwoST.class
 * writeHeader(String style,String description, String Class) 
D wrtHeader       PR                  EXTPROC(*Java: 
D                                     'Reports.LastTwoST': 
D                                             'writeHeader') 
D                                 O   Class(*Java:'java.lang.String') 
D                                     Const 
D                                 O   Class(*Java:'java.lang.String') 
D                                     Const 
D                                 O   Class(*Java:'java.lang.String') 
D                                     Const 
"Luis Colorado" <LuisC@xxxxxxxxxxxxxxxx> 
Sent by: java400-l-bounces@xxxxxxxxxxxx
01/28/2008 02:05 PM
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
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.