JBossアプリケーション(非Webアプリ)にて、@Remoteをつけたリモートインタフェースの実装クラスをStatelessBeanとしてEJBコンテナに登録。ちなみにJBossサーバは起動済みとする。
クライアント(ただのpulic static void main(String[])プログラム)からはそのインタフェースを呼出したい場合、クラスパスの通ったところにjndi.propertiesファイルを置いて、new InitialContext()して取得したコンテキストからlookupすれば取得できる。
ここまではよくあるEJB3のサンプル通り。
今回、開発時には、サーバ側のBean実装が存在しなくても、クライアントがちゃんと動作するようにしておきたい(モックで代用)。
そのために、専用のNamingContextFactoryを作るのも微妙だし、DIコンテナで管理させることもしたくない。で、単純な方法を思いついた。