3

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 を書き込もうとするのはなぜですか?

何か案が?

4

2 に答える 2