問題タブ [rmi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
18975 参照

java - Springコンテキストへのプロパティの受け渡し

Springを使用してリモートサーバーへのRMI呼び出しを処理しています。アプリケーションコンテキストを構築し、クライアント内からリモート呼び出し用のBeanを取得するのは簡単です。

ただし、プロパティを構成に渡す簡単な方法がわかりません。たとえば、クライアント内の実行時にリモートサーバーのホスト名を決定する場合です。

理想的には、Springコンテキストに次のようなエントリがあります。

プロパティをクライアントからコンテキストにパラメータとして渡します。

コンテキストでPropertyPlaceholderConfigurerを使用してこれらのプロパティを置き換えることができますが、これが機能するのは、ファイルから読み取られたプロパティに対してのみです。

私はこれに対処する実装を持っています(答えとして追加されました)が、私は自分自身を転がすことを避けるために標準のSpring実装を探しています。構成を初期化するのに役立つ別のSpringconfigurer(または他のもの)はありますか、それともこれを達成するためにJava構成を調べる方が良いですか?

0 投票する
3 に答える
7611 参照

java - rmi レジストリを閉じる

RMI を使用して WebAppA から WebAppB に String オブジェクトを渡します。WebAppB は RMIServer ですが、WebAppA は RMIClient です。WebAppB に ContextListener を追加したので、Tomcat でコンテキストが初期化されるとすぐに rmi サービスが開始されます。また、Tomcat の contextDestroyed メソッドで次のステートメントを使用して、rmi を終了/シャットダウンしようとしています。

しかし、前述のステートメントを実行した後でも、rmi はポート 3232 で着信要求をリッスンしています。コマンド プロンプトで「netsat -ano」を使用して確認しました。RMI サービスを終了するのを手伝ってください。

0 投票する
1 に答える
5059 参照

java - Tomcatを使用してRMIをトンネリングするにはどうすればよいですか

Javaサーブレットのポート80を通過するようにRMIを設定したい。(ファイアウォールを通過するため)Tomcatサーバーがあり、RMIhttpリクエストをキャッチしてそれをに渡すモジュールを探しています。サーバーマシンのRMIレイヤー。RMIがこれを自動的に処理することを読みました。

これへのステップバイステップガイドはありますか?または、サーバーにインストールするwarファイルだけですか?

ありがとう。

0 投票する
3 に答える
5506 参照

java - .NETからJavaRMIにアクセスする

RMIを使用する既存のJavaベースのシステムがあります。このシステムを変更するためのアクセス権がありません。

.NETから直接RMIapiメソッドを呼び出せるようにしたい。これを達成するための最良の方法は何ですか?サードパーティコンポーネントの場合は、無料または低コストが推奨されます。

ありがとう

0 投票する
2 に答える
26323 参照

java - 「実際の」ネットワークで使用できるようにRMI環境を構成するにはどうすればよいですか。

クライアントサーバーベースのアプリケーションに通信プロトコルを実装したくなかったため、2つのコンポーネント間の情報交換のためにRMIクライアントとRMIサーバーを両側に実装しました。

同じマシンで2つのコンポーネントを起動してアプリケーションを使用しようとすると、すべてが正常に機能しています。しかし、コンポーネントを2つの異なるコンピューター(ファイアウォールが無効になっているWindows 7RC環境内の仮想マシンとしてのKubuntu9.04とネイティブのUbuntu9.04環境)に分割すると、RMIクライアントは次のメソッドを実行できないようです。サーバー側で定義されます。(すべての関数呼び出しはRMI例外につながります。)

現在、両側のシステムプロパティ「java.rmi.server.hostname」を、データ交換に使用する必要のあるネットワークインターフェイスに設定し、rmiデーモン(?)rmidとの通信用のデフォルトポートを登録しました。

誰かが何がうまくいかないのか考えていますか?使用できるようにするには、「java.rmi.server.codebase」(http://java.sun.com/j2se/1.4.2/docs/guide/rmi/javarmiproperties.html)などの他のパラメータを設定する必要がありますか?アプリケーション内のRMI機能?

編集:さて、ここにあなたのためのいくつかの追加情報があります:

初期化フェーズで、クライアントはサーバーコンポーネントのRMIサーバーへの接続を確立しようとします。これは、次の2つの方法を使用して初期化されました。

「ipAddress」は、サーバーコンポーネントのネットワークインターフェイスのIPアドレスです。

クライアントコンポーネントが接続を確立するために使用するメソッドは、次のようになります。

ご覧のとおり、クライアントが関数を呼び出してサーバーに接続を登録します。

実際のネットワーク接続を使用してプログラムを実行すると、「スレーブ制御...」というテキストがサーバー側に表示されません。したがって、関数が実際にクライアントコンポーネントによって呼び出されているかどうかはわかりません。

クライアントコンポーネントが初期化された後、サーバーへのRMI接続を使用して次のメソッドを呼び出すことにより、サーバーコンポーネントに通知しようとします。

サーバー側でフラグを設定します。

エラーは、クライアント側のこの関数内で発生します。

java.rmi.ConnectException:ホスト127.0.1.1への接続が拒否されました。ネストされた例外は次のとおりです。java.net.ConnectException:接続が拒否されました。

ホストがここにいる理由がわかりません127.0.1.1..。

@nos

もちろん、Windowsファイアウォールとカスペルスキーインターネットセキュリティの保護メカニズムを無効にしました。Kubuntuにファイアウォールが実行されているとは思いません。generellでは、プログラムを他のマシンにコピーするためにすでにscpを使用しているため、接続を確立することができます。

Edit2:

うーん、マシンを参照する/ etc / hostsのエントリをマシンのIPアドレスに設定した後、それは機能しているように見えますが、なぜそれが機能するのか本当に理解していません...

BR、

マーカス

0 投票する
4 に答える
8849 参照

java - Java RMIでオブザーバーパターンを実装する方法は?

サーバー上で長時間実行されているプロセスを開始するクライアントがあります。定期的に、バックグラウンドで何が起こっているかをユーザーに示したいと思います。最も簡単なアプローチはサーバーをポーリングすることですが、これにオブザーバーパターンを実装する方法がなかったのではないかと思います。残念ながら、私はRMIを使用してサーバーと通信しており、このためにクライアントをRMIサーバーに変換する必要があるのではないかと心配しています。

私が行方不明になっている別の方法はありますか?

0 投票する
2 に答える
6136 参照

java - リモート JMX 呼び出しが ClassNotFoundException で失敗しました: ... (セキュリティ マネージャがありません: RMI クラス ローダーが無効になっています

Tomcat から Web アプリケーションから MBean のメソッドを呼び出してみます。ターゲット MBean は JBoss 4.2.3 で実行されています。Tomcat と JBoss の両方のアプリケーションは、同じクラスの同じバージョンの jar を使用しますが、呼び出し時に次の例外が表示されます。

JBoss は独自のクラスを使用していないと思いますが、このクラスをどこかからダウンロードしようとすると、「no security manager: RMI class loader disabled」で失敗します。ただし、この動作を変更して、ローカルの既にロードされたクラスを使用する方法。それとも、この推測を間違えているのでしょうか..?

0 投票する
2 に答える
832 参照

apache - 暗黙のリダイレクトによる Apache リライト

私はしばらくの間これをやろうとしてきましたが、うまくいきませんでした。これはおそらく初心者の質問なので、申し訳ありませんが、これについては助けが必要です。

cgi-bin/java-rmi.cgi へのリクエストを (Apache から) tomcat のサーブレットにリダイレクトしようとしています。サーブレットに正常にリダイレクトできましたが、暗黙的なリダイレクトを行うことができませんでした (クライアントからの URL の変更を隠しています)。

rmi がリダイレクトされると機能しないため、これは必須です。そのため、これをクライアントから非表示にする必要があります。

現在、私のhttpd.confは次のようになっています(明らかに関連するもののみ)

さらに、私の mod_jk.conf は次のようになります (ここでも、関連するもののみ)

(mod_jk.confは問題とは関係ないと思いますが)

これらも有効にしました:

dules/mod_rewrite.so

http://localhost/cgi-bin/java-rmi.cgiを開こうとすると、 http://localhost/RMIServletという URL でページが開きますが、これは良くありません。

私は何を間違っていますか?

ありがとう!

0 投票する
2 に答える
614 参照

java - Java RMI を使用して、シリアル化されたオブジェクトがネットワーク経由で送信されるのは正確にはいつですか?

RMI を使用して分散アルゴリズムを実装しています。非常に大きなオブジェクトを送信しているため、RMI がシリアル化されたオブジェクトをネットワーク経由で送信するタイミングについて、ある程度の精度が必要です。

次のメソッドを持つ Remote クラスがあるとします。

現在、MyServer.foo メソッドを呼び出す 2 つ (またはそれ以上) の RMI クライアントがあります。クライアント 1がそれ​​を呼び出すと、Thread.wait()でブロックされます。次に、クライアント 2がfooを呼び出すと、クライアント 1 がまだ同期されているfooメソッドにあるため、ブロックされます。

さて、問題は次のとおりです。クライアント 2呼び出しのbarパラメータがネットワークを介して送信されるのはいつですか。クライアント 2が実際にfooメソッドに入ることができるのは1 回だけ、またはそれがブロックされる前に ?

おまけの質問: これ (オブジェクトが送信される時間) は RMI 仕様によって強制される動作ですか、それとも実装固有ですか?