首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JacORB 3.2 NameService (ns)似乎没有读取"orb.properties“文件

JacORB 3.2 NameService (ns)似乎没有读取"orb.properties“文件
EN

Stack Overflow用户
提问于 2013-06-05 20:32:56
回答 2查看 1.8K关注 0票数 3

我对JacORB 3.2有一个问题,因为它似乎没有读取orb.properties文件,特别是ORBInitRef.NameService属性。

如第3.1章的文档所述,JacORB在三个位置自动搜索orb.properties文件:"java.home"/lib目录、"user.home"目录和类路径内。

这就是我没有完全喝醉的证据:

Java命令:

代码语言:javascript
复制
System.out.println(System.getProperty("java.home"));
System.out.println(System.getProperty("user.home"));

输出:

代码语言:javascript
复制
/usr/lib/jvm/jdk1.7.0/jre
/home/emanuele

巴什命令:

代码语言:javascript
复制
ls /usr/lib/jvm/jdk1.7.0/jre/lib | grep orb.properties ; ls /home/emanuele | grep orb.properties

输出:

代码语言:javascript
复制
jacorb.properties
orb.properties
jacorb.properties
orb.properties

这四个.properties文件完全相同。请查看包含NameService的引用(IOR)的文件的URI:

代码语言:javascript
复制
ORBInitRef.NameService=file:/tmp/CORBA/NS_Ref

问题是,当我试图在没有任何参数(ns)的情况下启动NameService时,我得到了以下错误消息:

代码语言:javascript
复制
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,一切都会好起来的。

代码语言:javascript
复制
ns -Djacorb.naming.ior_filename=/tmp/CORBA/NS_Ref

非常奇怪的是,在NameService运行之后,所有其他对象都可以正确和自动地解析NameService的初始引用。

代码语言:javascript
复制
NamingContextExt nc = NamingContextExtHelper.narrow(orb.resolve_initial_references("NameService"));

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

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-10 21:27:32

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

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

优先。启动NamingService的而不是,受选项ORBInitRef.NameService或任何相关命令行选项的影响。如果希望NamingService将其IOR放在文件中,请使用

代码语言:javascript
复制
# The file where the name server drops its IOR
jacorb.naming.ior_filename=file:///tmp/CORBA/NS_Ref

就像你已经做的那样。如果使用此cmdline选项时行为不同,请参见2。

第二,它的配置文件并不是操作系统特有的 JacORB --它的配置文件混合了Linux和JacORB风格。别指望这个。

ns的调用将调用JacORBs bin目录中的jaco脚本。激活文件末尾的详细内容,然后再次启动ns,查看实际使用了哪些jrejacorb.home。找人倾诉。除去你不需要的所有其他吐露。

再试一次。

票数 2
EN

Stack Overflow用户

发布于 2013-06-06 13:58:07

代码语言:javascript
复制
ns -Djacorb.naming.ior_filename=/tmp/CORBA/NS_Ref

看上去不错,但那不应该吗?

代码语言:javascript
复制
ORBInitRef.NameService=file:/tmp/CORBA/NS_Ref

读取file:///tmp/CORBA/NS_Ref

还有这个

代码语言:javascript
复制
c:/NS_Ref

在Linux上是很奇怪的;在我看来,这是一个很好的窗口;您确定您没有混合Win和Linux配置文件吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16949324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档