問題タブ [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.
java - JBoss 4.0.1 から 4.2.3 への RMI/HTTP を試行すると NamingException が発生する
JBoss 4.2.3 GA で実行されている EJB でメソッドを呼び出そうとするアプリケーションがあります。
アプリケーションはレガシー アプリです。JBoss 4.0.1 で実行された元のサーバーにアクセスすると機能します。その RMI コードは、JBoss 4.0.1 の jbossall-client.jar にあります。それ自体を更新できるようにする新しいコードを提供するメソッドを呼び出そうとしています。したがって、そのまま機能させる必要があります。私ができる唯一の変更はサーバー側です。最悪の場合、古いバージョンからのこれらの要求を処理できる 4.0.1 JBoss サーバーをセットアップする必要があるかもしれません。
それまでの間、なぜ失敗しているのか、そしてそれを修正するためにできることがあれば理解したいと思います.
現在、new InitialContext() で失敗しています。
これはスタック トレースです。
java - 異なる地域のマシン間で RMI を介して日付を送信する
異なるタイムゾーンのマシンとの間で、RMI を介して java.util.Date オブジェクトを送信する際に問題が発生しています。
たとえば、ドイツのクライアントは日付オブジェクトを英国のサーバーに送信します。
- ユーザーは、20090220 などの日付文字列を入力します。
- ドイツのクライアント アプリは、SimpleDateFormat("yyyyMMdd") を使用して日付に変換し、次のように指定します: Fri Feb 20 00:00:00 CET 2009
- 英国のサーバーは、RMI 経由で日付を次のように受信します: Thu Feb 19 23:00:00 GMT 2009
- サーバーは日付を英国のOracleデータベースのDATE列に格納します
この間違った日付の問題を回避する最善の方法は何ですか? 日付文字列を送信してサーバーに日付に変換させることもできますが、サーバーが実行する必要がある作業の量を減らしたいと考えています。
以下は、日付のシリアル化を示すスタンドアロンのテスト プログラムです。
java - Java RMI 呼び出しのリモート クライアント IP アドレスを決定する
RMI サーバーを実装する (java.rmi.Remote を拡張するインターフェースを実装する) 場合、現在の RMI 要求コンテキスト、特にリモート クライアントの IP アドレスに関する情報を取得する方法はありますか?
java - セキュリティ ポリシーを Java プログラム自体に実装するにはどうすればよいですか
私は Java-RMI の初心者で、小さなアプリケーションを開発しました。しかし、サーバーとクライアントを実行するには、Java -Djava.security.policy=client.policy を実行する必要があります。
では、このコマンド「-Djava.security.policy=client.policy」を省略するにはどうすればよいでしょうか? または、Java プログラムでセキュリティ ポリシーを実装する方法はありますか? 前もって感謝します。
java - RMI と例外
私は RMI を初めて使用し、例外を使用するのは比較的初めてです。
RMI 経由で例外をスローできるようにしたい (これは可能ですか?)
学生にサービスを提供する単純なサーバーがあり、学生が存在しない場合は、RemoteException を拡張する StudentNotFoundException のカスタム例外をスローする delete メソッドがあります (これは良いことですか?)
アドバイスやガイダンスをいただければ幸いです。
サーバーインターフェース方式
サーバーメソッドの実装
クライアント方式
StudentNotFoundException
ご返信いただきありがとうございます。問題を解決することができ、RemoteException を拡張することは悪い考えであることに気付きました。
java - java.rmi.NoSuchObjectException:テーブルにそのようなオブジェクトはありません
java.rmi.NoSuchObjectExceptions
非常に単純なRMIサーバーを作成していますが、単体テストで断続的に表示されます。
同じオブジェクトに対して一連のリモートメソッド呼び出しがあり、最初のいくつかは通過しますが、後のメソッドは失敗することがあります。その間にサーバーオブジェクトの登録を解除するために何もしていません。
これらのエラーは常に表示されるわけではなく、ブレークポイントを設定すると表示されない傾向があります。それらのHeisenbugsは、デバッガーの実行速度が低下していることを確認すると競合状態が解消されますか?テストコードまたはサーバーコードでマルチスレッドが実行されていません(ただし、RMIスタック内にある可能性があります)。
これをMacOSX 10.5(Java 1.5)でEclipseのJUnitプラグインを介して実行しており、RMIサーバーとクライアントは両方とも同じJVMにあります。
これらの例外の原因は何ですか?
java - RMI: impl クラスの再コンパイルが必要な変更
RMI オブジェクトを使用して通信する 2 つのアプリケーションがあります。インターフェイス、実装クラス、および生成されたスタブ クラスがあります。
impl クラスのいくつかの変更により、新しいスタブ クラスを作成する必要があることに気付きました。
私の質問は、スタブを再コンパイルせずにどのような変更を加えることができるかということです。
私が知っている限り:
- メソッド構造を変更できない (メソッドの追加、削除、変更)
- impl クラスが使用しているクラスに serialVersionUID を追加できますか?
- impl クラスが使用しているクラスを変更できますか?
- impl と使用されているすべてのクラスを文書化できますか?
今週の初めに変更を行ったので、この質問をします。現在、RMI 接続が切断されています。しかし、コメントを追加してチェックスタイルを更新しただけです。そこで、シリアル バージョンの UID を追加し、一部のクラスを最終版に変更しました。
java - Spring で RMI を使用して複数のオブジェクトを公開する
Spring を使用して RMI で複数のオブジェクトを公開するにはどうすればよいですか?
ここに書かれていることから始めます。
さらに多くのオブジェクトを公開したい場合、RMIServiceExporter の別のインスタンスを宣言する必要がありますか?