Question

Je suis en train d'exécuter un programme de RPGLE qui utilisent des méthodes java. Je suis le code transfering java (fichier xxxx.java) de mon système (Windows XP) à l'AS / 400 répertoire IFS par FTP. Après IFS à transférer, le fichier CCSID est affiché comme 819.

Je suis la compilation du fichier .java dans SQE, aucune erreur est affichée. Mais deux fichiers de classe sont générés. c'est à dire. Mailer.java ? Mailer.class et Mailer$1.class

Mais quand je fais appel mon programme de RPGLE, une exception java est montré ...

Java exception received when calling Java method (C G D F)... 
Application error.  RNX0301 unmonitored by MAILERDEMO at statement 000000500

Quand j'ai vu le fichier Mailer.java dans IFS en appuyant sur l'option 5, symboles comme {, }, [, ], !, /, \ etc. sont changés à d'autres symboles.

Alors plz me suggérer des solutions pour cela, pour que je puisse exécuter ce programme. Comment transférer le fichier .java à IFS sans changer les caractères à certains les différents?

Voici quelques détails .....

Système CCSID Valeur - 819

Job CCSID - 273

code source Java dans mon répertoire IFS:

// Load Properties File                                                        
if (is |= null) ä                                                              
    try ä                                                                      
        properties = new Properties();                                         
        properties.load(is);                                                   
    ü                                                                          
    catch (Exception e) ä                                                      
        System.err.println("Error " + "Ö"" + e.getLocalizedMessage()           
            + "Ö"" + " loading AS/400 Connection Properties.");                
        throw new RuntimeException(e);                                         
    ü                                                                          
ü                                                                              

// Assume properties passed as system properties                               
else ä                                                                         
    properties = System.getProperties();                                       
ü                                                                              

Java Exception programme en cours d'exécution montré RPGLE:

Message ID . . . . . . :   RNQ0301       Severity . . . . . . . :   99         
Message type . . . . . :   Inquiry                                             
Date sent  . . . . . . :   12/30/10      Time sent  . . . . . . :   11:31:57   

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.NoSuchMethodError: sendSimpleMail" when   
  calling method "sendSimpleMail" with signature                               
  "(Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;)L 
  java.lang.String;" 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 . . . . . . . . . . . . . . . :       
  D -- Obtain RPG formatted dump.                                              
                                                                       More... 
Était-ce utile?

La solution

Si vous pouvez compiler votre avec javac dans SQE puis le code source Java lui-même a été transféré d'une manière qui fait acceptable pour javac (qui ne fait pas la conversion de page de code et espère que les octets lus à être en 819). Le Mailer 1.class $ provient d'une classe anonyme Mailer (une nouvelle foobar () avec un {} -Block par la suite).

Qu'il semble inexact de vous, je puis attendre d'être parce que le système AS / 400 est très probablement pas d'accord avec votre émulateur 5250 sur les jeux de caractères utilisés, et je ne vous inquiétez pas (aussi longtemps que les travaux de javac) .

Votre message d'erreur indique cependant qu'il existe un décalage entre l'en-tête de RPG décrivant ce que la méthode Java que vous voulez appeler, et celui qui est en fait là. Pour moi, il semble que vous voulez appeler « demo.Mailer.sendSimpleMail (String, String, String, String) » qui devrait renvoyer une chaîne, et vous n'avez pas une telle méthode.

Autres conseils

OMI il n'y a aucune raison de compiler du code sur l'iSeries ... développer, tester et construire le code sur un poste de travail ... puis déployer et tester le pot d'application sur l'hôte.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top