gpt4 book ai didi

java - JacORB 3.2 NameService (ns) 似乎无法读取 "orb.properties"文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:52:08 25 4
gpt4 key购买 nike

我遇到了 JacORB 3.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

重击命令:

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文件是完全一样的。请查看包含名称服务引用 (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运行后,EVERY OTHER OBJECT都能正确自动解析到NameService的初始引用。

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

前面的 Java 代码返回一个有效的对象。这对我来说没有任何意义。当我在 Linux 上时,为什么 NameService 会尝试将其 IOR 写入随机文件(如 C:\NS_Ref)?

有什么想法吗?

最佳答案

我觉得你在问题中混淆了一些不同的东西。

  1. NS 的 IOR 的位置
  2. 其他程序读取和使用此 IOR 的能力

首先。启动命名服务不受选项 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 的调用将调用 JacORBs bin 目录中的 jaco 脚本。激活文件末尾的详细信息,然后再次启动 ns 并查看真正使用了哪些 jrejacorb.home。寻找配置。删除您不需要的所有其他配置。

重试。

关于java - JacORB 3.2 NameService (ns) 似乎无法读取 "orb.properties"文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16949324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com