orb.properties
ファイル、特にORBInitRef.NameService
プロパティを読み取っていないように見えるため、JacORB 3.2 に問題があります。
"java.home"/lib
第 3.1 章のドキュメントに記載されているように、JacORB は、ディレクトリ、ディレクトリ、およびクラスパス内の3 つの場所で orb.properties ファイルを自動的に検索します"user.home"
。
これは、私が完全に酔っていない証拠です。
Java コマンド:
System.out.println(System.getProperty("java.home"));
System.out.println(System.getProperty("user.home"));
出力:
/usr/lib/jvm/jdk1.7.0/jre
/home/emanuele
バッシュ コマンド:
ls /usr/lib/jvm/jdk1.7.0/jre/lib | grep orb.properties ; ls /home/emanuele | grep orb.properties
出力:
jacorb.properties
orb.properties
jacorb.properties
orb.properties
これら 4 つの.properties
ファイルはまったく同じです。NameService の参照 (IOR) を含むファイルの URI を見てください。
ORBInitRef.NameService=file:/tmp/CORBA/NS_Ref
問題は、パラメーター (ns) を指定せずに NameService を起動しようとすると、次のエラー メッセージが表示されることです。
giu 05, 2013 9:56:51 PM org.jacorb.naming.NameServer main
SEVERE: unexpected exception
java.io.FileNotFoundException: c:/NS_Ref (No such file or directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:212)
at java.io.FileOutputStream.<init>(FileOutputStream.java:104)
at org.jacorb.naming.NameServer.main(NameServer.java:320)
java.lang.RuntimeException: c:/NS_Ref (No such file or directory)
at org.jacorb.naming.NameServer.main(NameServer.java:335)
もちろん、URI を明示的にコンソールに渡すと、すべてうまくいきます
ns -Djacorb.naming.ior_filename=/tmp/CORBA/NS_Ref
非常に奇妙なことは、NameService が実行された後、すべてのOTHER OBJECTが NameService の最初の参照を正しく自動的に解決できることです。
NamingContextExt nc = NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService"));
前の Java コードは有効なオブジェクトを返します。それは私には意味がありません。また、Linux を使用しているときに、NameService が C:\NS_Ref のようなランダムなファイル内に IOR を書き込もうとするのはなぜですか?
何か案が?