- - PR -
RMIリモートオブジェクトの生成
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-08-12 16:47
基本的な質問で申し訳ありません。RMIに関する質問です。
RMIサーバー側でrmiregistryを起動した状態で、 java -Djava.rmi.server.codebase=file:/略/ -Djava.security.policy=policy MyServerObj を実行し、MyServerObj内でリモートオブジェクトの生成とレジストリ登録を行い、 クライアント側からRMIでメソッド実行できることは確認できたのですが、 このリモートオブジェクトを単独のJavaVMではなく、JRunなどのAPサーバー上の JavaVM上に生成させたいのですが、やり方がよく分かりません。 APサーバーを起動時に自動的にリモートオブジェクトを生成させ、常駐させようと 思っています。 |
|
投稿日時: 2005-08-12 17:02
通常のJavaアプリケーションであれば、LocateRegistry#createRegistry()で
現在実行しているJVM上にRMIレジストリサーバーを作成することはできますが、 JRunのWebアプリケーションのセキュリティポリシーでこのメソッドが成功する かどうかはわかりません。 お使いのAPサーバーにEJBコンテナがあるなら、それを使って使用したいリモート オブジェクトをEJBとして実装してJNDIに登録しておくのが正道だと思いますが・・・ #EJB=J2EEの仕様でラップしたRMIサーバーオブジェクトだと思っていいですよ。 ところで、Webアプリケーションに閉じた範囲でしか共有しないオブジェクトであ れば、常駐のサーバーオブジェクトなど作らなくても、アプリケーションコンテキ ストにインスタンスを1個しまっておいて共有する(スレッド間の排他だけ注意)、 でも必要十分だと思いますけれど、いかがでしょうか。 |
|
投稿日時: 2005-08-12 20:55
返信ありがとうございます。
このリモートオブジェクトは別のサーバ上のサーブレットから利用予定です。 EJBでの実装もありと思いますが、今のとこシンプルにRMIで行おうとしています。 今つまづいているのは、もっと初歩的なところでして、APサーバー起動時に このリモートオブジェクトを自動生成する手段が分からないのです。 自動の必要がなければ、リモートオブジェクトを生成するサーブレットを作って そのサーブレットにリクエストするなどすればよいとは思うのですが・・・。 結局、特定のJavaアプリケーションをAPサーバー起動時に自動実行できれば、 解決すると思っているのですが、その方法が分かりません。 一般的にはどうやるものなのでしょうか。 (とりあえずrmiregistryは事前起動されている前提でかまいません) |
|
投稿日時: 2005-08-12 23:27
>EJBでの実装もありと思いますが、今のとこシンプルにRMIで行おうとしています。
> >今つまづいているのは、もっと初歩的なところでして、APサーバー起動時に なぜRMIをベタにさわるのがシンプルだと考えましたか? 素直にEJBを使えばマニュアル通りに使えば済みますし、わからない点があればサポートを受けられますよ。 |
|
投稿日時: 2005-08-12 23:57
ありがとうございます。やはりEJBで実装すべきものということですか。
今回の件はEJBコンテナがない環境で実現させようと考えているのですが、 その場合はどう実現すべきものでしょうか。 |
|
投稿日時: 2005-08-13 00:40
なるほど
>リモートオブジェクトを単独のJavaVMではなく、JRunなどのAPサーバー上の JavaVM上に生成させたいのです と前提にあったものですから、それならば素直に EJB を使えばよいかと思いました。 前提が変わっているのであれば回答も変わってくるかと思います。 結局何がしたいのでしょう? |
|
投稿日時: 2005-08-13 15:12
すみませんでした。JRunは一例で、実際はEJBコンテナがないサーバで行おうと思っています。
やりたいことは、 APサーバーを起動時に自動的にRMIサーバーオブジェクト(リモートオブジェクト)を生成させたいだけです。 (APサーバーのデータソースなどを利用します) |
|
投稿日時: 2005-08-15 10:35
なぜリモートオブジェクトが必要なのかがよく見えませんが…
APサーバー起動時に一回だけ何かしたいという目的なら =Servlet#init()かServletContextListener#contextInitialized() あたりに必要な処理を書いて使えばOKです。ここの会議室によく出 てくる話題ですよ。 |