我有一個JacORB 3.2的問題,因爲它似乎沒有讀取orb.properties
文件,尤其是ORBInitRef.NameService
屬性。JacORB 3.2 NameService(ns)似乎不讀取「orb.properties」文件
如第3.1章文檔中所述,JacORB自動在三個位置搜索orb.properties文件:"java.home"/lib
目錄,"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/followthemedia
bash命令:
ls /usr/lib/jvm/jdk1.7.0/jre/lib | grep orb.properties ; ls /home/followthemedia | grep orb.properties
輸出:
jacorb.properties
orb.properties
jacorb.properties
orb.properties
這四個.properties
文件是完全一樣的。請看看包含名稱服務的引用(IOR)的文件的URI:
ORBInitRef.NameService=file:/tmp/CORBA/NS_Ref
的問題是,當我嘗試啓動名稱服務不帶任何參數(NS),我得到了這些錯誤消息:
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的初始引用。
NamingContextExt nc = NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService"));
上一個Java代碼返回一個有效的對象。這對我來說沒有任何意義。 爲什麼當我在Linux上時,NameService嘗試將它的IOR寫入像C:\ NS_Ref這樣的隨機文件中?
有什麼想法?