jacorb3.2nameservice(ns)似乎没有读取“orb.properties”文件

gab6jxml  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(309)

我对jacorb3.2有一个问题,因为它似乎没有读取 orb.properties 文件,尤其是 ORBInitRef.NameService 财产。
如第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/emanuele

bash命令:

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

这四个 .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运行之后,其他所有对象都可以正确自动地解析nameservice的初始引用。

NamingContextExt nc = NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService"));

前面的java代码返回一个有效的对象。这对我来说毫无意义。当我在linux上时,为什么nameservice试图将其ior写入一个像c:\ns\u ref这样的随机文件中?
你知道吗?

c6ubokkw

c6ubokkw1#

ns -Djacorb.naming.ior_filename=/tmp/CORBA/NS_Ref

看起来不错,但那不是吗

ORBInitRef.NameService=file:/tmp/CORBA/NS_Ref

阅读 file:///tmp/CORBA/NS_Ref ?
还有这个

c:/NS_Ref

在linux上很奇怪;在我看来,那是一件很无聊的事;你确定没有混合win和linux配置文件吗?

hl0ma9xz

hl0ma9xz2#

我觉得你的问题把不同的东西混在一起了。
ns ior的位置
其他程序读取和使用此ior的能力
第一。启动namingservice不受选项的影响 ORBInitRef.NameService 或任何相关的命令行选项。如果希望namingservice将其ior放到文件中,请使用


# The file where the name server drops its IOR

jacorb.naming.ior_filename=file:///tmp/CORBA/NS_Ref

就像你已经做的那样。如果使用此作为cmdline选项时行为不同,请参见2。
第二。jacorb的配置文件不是特定于操作系统的,它混合了linux和windows风格。别指望这个。
你的电话 ns 会打电话给 jaco 提花手稿 bin 目录。激活文件末尾的详细信息,然后开始 ns 再来看看哪个 jre 以及 jacorb.home 真的很有用。查找配置。删除不需要的所有其他配置。
重试。

相关问题