1

JavaシステムをレガシーC++システムと統合する必要があります。これら2つのシステムはCORBAを介して通信します。JavaシステムはJBossで実行されるため、JacORBを使用します。

.idlファイルからJavaスタブを生成するには、maven-idl-compilerプラグインを使用します(JacORBを使用)

org.codehaus.mojo idlj-maven-plugin org.jacorbjacorb-idl-compiler2.2.3提供

すべて正常に動作しますが、スタブの生成方法を変更したいと思います(メソッド、クラスなどの名前を変更します)。それを行う方法はありますか?

4

3 に答える 3

1

すべて正常に動作しますが、スタブの生成方法を変更したいと思います(メソッド、クラスなどの名前を変更します)。それを行う方法はありますか?

これは不可能です。

サーバースケルトンとクライアントスタブは、選択した実装でCorbaによって生成されます。基本的に、分散オブジェクトに干渉するときにORBオブジェクトパラメータを処理するためのMarshallerとUnmarshallerが含まれています。

生成は指定したIDLに依存するため、このコードはすべてCORBAで使用されるIDL言語と高度に結合されています。

したがって、スタブやスケルトンを直接変更することはできません。IDL言語は、実装言語に関係なく、すべての分散オブジェクト間で共通のインターフェイスを確保するために存在するため、意味がありません。

ただし、IDL自体をいつでも変更して、ニーズに合わせることができます。

于 2012-10-04T03:31:33.463 に答える
1

通常、この状況で人々が行うことは、ファサードパターンを使用することです。

https://en.wikipedia.org/wiki/Facade_pattern

通常どおりIDLを作成してから、IDLクラスを効果的にラップするが、呼び出しをIDLインターフェイスに渡すだけの別のクラスを作成します。このメソッドを使用すると、プログラムで使用できるメソッドの新しい名前を作成できます。たとえば、特定の状況で常に同じパラメータを渡す場合は、メソッドを簡略化する機会もあります。

もう1つの利点は、IDLの作成者がメソッドの名前を変更したり、パラメーターを変更したりした場合、プログラムで直接インターフェイスを使用していないため、ある程度の保護が得られることです。

于 2015-10-12T16:37:36.677 に答える
0

$ JACORB_HOME / src / org / jacorb / idlの下のコードを変更して、必要なものを生成できます。理解と変更が容易に見える生成コードの例については、OpDecl.javaのprintStreamBodyメソッドを参照してください。

于 2011-07-05T20:10:04.597 に答える