Javaソースの句読点は、IFSにコピーされたときにアクセント文字に変更されました

StackOverflow https://stackoverflow.com/questions/4561875

質問

Javaメソッドを使用するRPGLEプログラムを実行しようとしています。 Javaコード(xxxx.javaファイル)をシステム(Windows XP)からFTPを介してAS/400 IFSディレクトリに転送しています。 IFSに転送した後、ファイルCCSIDは819として表示されます。

QSHで.javaファイルをコンパイルしていますが、エラーは表示されません。ただし、2つのクラスファイルが生成されます。すなわちMailer.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のファイル、次のようなシンボル { , }, [ , ], !, /, \ などは他のシンボルに変更されます。

そのため、PLZはこれのためのいくつかの解決策を提案しているので、このプログラムを実行できます。 .javaファイルを別の文字に変更せずに.javaファイルをifsに転送する方法は?

ここにいくつかの詳細があります.....

システムCCSID値-819

ジョブ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();                                       
ü                                                                              

rpgleプログラムを実行しているJava例外:

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に受け入れられるように転送されました(コードページ変換を行わず、819年に読み取られると予想されます)。メーラー$ 1.クラスは、メーラーの匿名のクラス(新しいfoobar()が{} blockを備えた)から来ています。

それがあなたに間違っているように見えることは、AS/400システムが使用されているキャラクターセットの5250エミュレーターに同意していない可能性が高いため、私は(Javacが機能する限り)心配しません。

ただし、エラーメッセージは、RPGヘッダーの間に、あなたが呼び出すJavaメソッドと実際にそこにあるものを説明する不一致があることを示しています。私には、「demo.mailer.sendsimplemail(string、string、string、string)」を呼び出したいと思うように見えます。

他のヒント

IMO ISERIESでコードをコンパイルする理由はまったくありません...ワークステーションでコードを開発、テスト、およびビルドします...その後、ホストにアプリケーションジャーを展開してテストします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top