× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



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.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 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.