我正在尝试运行使用Java方法的RPGLE程序。我将Java代码(XXXX.JAVA文件)从我的系统(Windows XP)传输到通过FTP的AS/400 IFS目录。将其传输到IFS后,将文件CCSID显示为819。

我正在用qsh编译.java文件,没有显示错误。但是生成了两个类文件。 IEMailer.javaMailer.classMailer$1.class

但是,当我打电话给我的rpgle程序时,显示出Java异常...

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

当我看到 Mailer.java 通过按选项5在IFS中归档,符号像 { , }, [ , ], !, /, \ 等等,更改为其他一些符号。

因此,请建议我一些解决方案,以便我可以运行此程序。如何将.java文件传输到IFS而不将字符更改为某些不同的文件?

这里有一些细节.....

系统CCSID值-819

Job CCSID -273

我的IFS目录中的Java源代码:

// 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异常显示运行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... 
有帮助吗?

解决方案

如果您可以用QSH编译Javac将源编译,则Java源代码本身的传输方式是使Javac可以接受的方式(这不做代码页面转换,并期望BYTES读取为819)。 Mailer $ 1.类来自Mailer中的匿名类(随后{} - block)的新foobar())。

这对您来说看起来不正确,然后我希望这样做是因为AS/400系统很可能与您使用的字符集上的5250仿真器一致,而且我不会担心(只要Javac工作)。

但是,您的错误消息表明,RPG标头描述了您要调用的Java方法与实际存在的Java方法之间存在不匹配。对我来说,看起来您想调用“ demo.mailer.sendsimplemail(字符串,字符串,字符串,字符串)”,它应该返回字符串,并且没有这样的方法。

其他提示

IMO根本没有理由在iSeries上编译代码...在工作站上开发,测试和构建代码...然后在主机上部署和测试应用程序JAR。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top