2010-12-31 16 views
0

Ich erhalte einen Fehler in AS/400 beim Ausführen eines RPG-Programms ... Ich versuche, eine Java-Methode aus meinem RPG-Programm aufzurufen. Ich habe tw .jar Datei namens mail.jar und activation.jar im Classpath varible im ADDENVVAR hinzugefügt .... Aber der Fehler immer noch sagt, dass Klasse nicht gefunden ...Klasse nicht gefunden Fehler in AS/400

     Additional Message Information       

Message ID . . . . . . : RNQ0301  Severity . . . . . . . : 99   
Message type . . . . . : Sender copy           
Date sent . . . . . . : 12/31/10  Time sent . . . . . . : 12:01:08 

Message . . . . : Java exception received when calling Java method (C G D  
    F).                   
Cause . . . . . : RPG procedure MAILERDEMO in program SAHOON1/MAILERDEMO  
    received Java exception "java.lang.NoClassDefFoundError:      
    javax/mail/Authenticator" when calling method "sendSimpleMail" with   
    signature                  
    "(Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;)V 
    " in class "demo.Mailer".              
Recovery . . . : Contact the person responsible for program maintenance to 
    determine the cause of the problem.           
Possible choices for replying to message . . . . . . . . . . . . . . . :  
                     More... 
Reply . . . : F                

Bitte helfen Sie mir .......

Dank in adv ...

Antwort

1

Ihr Projekt benötigen mail-api.jar in Ihrem classpath für javax/mail/Authenticator

+0

Aber ich habe mail.jar bereits in meinem Classpath hinzugefügt ..... Ist es nicht ausreichend für diesen Zweck ...... oder sollte ich mail-api.jar – Nirmal

+0

öffnen, die JAR-Datei überprüfen, ob dies Klasse existiert –

+0

Ihr Klassenpfad-Setup ist kaputt. Vielleicht möchten Sie dies in QSH laufen lassen, bevor Sie versuchen, es in RPG zu integrieren. –

1

Vergewissern Sie sich, stellen Sie den classpath vor die Java-VM begann für Ihren Job. Dies ist sehr wichtig, da ein späteres Ändern nichts ändert und es nicht möglich ist, eine neue VM im selben Job zu starten (es gibt derzeit keine Möglichkeit, eine laufende VM sauber anzuhalten und eine neue auf der AS/400). Dies ist in einem interaktiven Job extrem verwirrend, wenn Sie mehrere Programme ausführen.

Eine Möglichkeit, dies zu umgehen, besteht darin, ein CL-Programm zu schreiben, das den Klassenpfad setzt und das Programm ausführt. Denken Sie daran, es ist nicht für ein Programm festgelegt, es ist für den gesamten Job eingestellt, also sollten Sie es dann über den Sendeauftrag aufrufen.

Sobald das erste Java-Programm (oder Methode über ILE) im Job aufgerufen wird, wird die VM mit den aktuellen Einstellungen gestartet. Legen Sie also immer den classpath var so fest, dass er alle erforderlichen jars/classes in Ihrer Programme für diesen Job enthält. Stellen Sie dann auch die gewünschte Version der VM ein.