复制给IFS时,Java源的标点符号更改为重音字母
-
14-10-2019 - |
题
我正在尝试运行使用Java方法的RPGLE程序。我将Java代码(XXXX.JAVA文件)从我的系统(Windows XP)传输到通过FTP的AS/400 IFS目录。将其传输到IFS后,将文件CCSID显示为819。
我正在用qsh编译.java文件,没有显示错误。但是生成了两个类文件。 IEMailer.java
→ Mailer.class
和 Mailer$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。