2010-04-13 63 views
5

我希望得到一些有关这个奇怪问题的帮助。我们正在运行Jacorb名称服务器,并且我有一个简单的客户端,用于尝试连接并执行令人敬畏的CORBA voodoo。名称服务器正在运行,但是当我尝试启动我的Java应用程序时,我得到一个"Connection failure" error (org.omg.CORBA.COMM_FAILURE, minor code 201, "caused by java.net.ConnectionException: Connection refused: connect")尝试连接Jacorb命名服务时出错

这是奇怪的部分。该错误报告说它尝试使用默认端口900进行连接,但是我传入参数以尝试覆盖名称服务的端口号以匹配名称服务器使用的端口号。我的java命令是这样的:

java -classpath . HelloClient -Djava.endorsed.dirs="bla bla bla" <br> 
-Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB 
-Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton 
-DORBInitRef.NameService=corbaloc::localhost:2809/StandardNS/NameServer-POA/_root 

我也试过没有第一个首都d的参数(我已经看到了这两种方法,我不知道其中的差别)。

现在,如果我把-ORBInitialPort 2809,然后客户端似乎尝试连接,但后来我得到一个corba.OBJECT_NOT_EXIST错误。

我可以使用任何人的帮助或建议。

+0

哇,没有人甚至冒险猜测?我感到很失望:\ – Dave 2010-04-15 14:07:18

+0

您可以在您尝试建立到名称服务器的连接的位置发布您的Java代码吗? – 2010-04-23 03:22:18

回答

3

拒绝连接。这听起来像防火墙/程序没有运行问题。 尝试telnet <machine> 2809。如果一切正常运行/启用,您应该得到“连接到” 而不是拒绝。

我在UNIX客户端上运行,所以路径使用UNIX风格。

  1. jacORB安装正确吗?例如您可以通过 orb.properties文件的名称服务条目(在$ {JAVA_HOME}/JRE/lib目录/ 我用“ORBInitRef.NameService=corbaloc::localhost:2809/NameServer” 为“域名服务器”是生产服务器的名称,而不是其他 字符串标准”上使用。 ......”

    在属性文件中的其他变化的路径设定为UNIX样式 (即E:\ NS_Ref - >的/ tmp/NS_Ref) jacorb.naming.ior_filename=/tmp/NS_Ref

1A设置HTTP。 :/ /在属性文件中似乎没有做任何事情 关于resolvin g在客户端。

1b。注:开始与NS: ns -DOAPort=2809

日志将显示: 2010-05-27 10:00:47.777 FINE Created socket listener on 0.0.0.0/0.0.0.0:2809 2010-05-27 10:00:47.777 FINE Using port 2809 运行: $ lsof | grep 2809 java 27529 jbsymolo 15u IPv6 693300 TCP *:2809 (LISTEN) $ lsof -Pnl +M -i6 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME Naming_Se 9678 1000 7u IPv6 45779 TCP *:51148 (LISTEN) java 27959 1000 15u IPv6 696092 TCP *:2809 (LISTEN)

没有运行:(显示什么)

  • ns启动时会记录它从何处读取属性,并且不应该 会抛出任何错误。如果它是你的属性文件有问题。

  • VM参数。 -D用于设置系统属性。任何Java代码都可以通过System.getProperty()访问任何如此定义的属性。尽管 我也见过用 “非d”,我一直在使用D.

    -DORBInitRef.NameService = corbaloc ::本地主机:2809 /名称服务 -Dorg.omg.CORBA .ORBClass = org.jacorb.orb.ORB -Dorg.omg.CORBA.ORBSingletonClass = org.jacorb.orb.ORBSingleton

  • 当运行Eclipse中的客户端,我看到控制台以下:

    May 27, 2010 10:01:06 AM org.jacorb.config.JacORBConfiguration init 
    INFO: base configuration loaded from file /usr/lib/java/jdk1.6.0_18/jre/lib/orb.properties 
    ... 
    2010-05-27 10:01:09.836 FINE Trying to connect to 127.0.0.1:2809 with timeout=90000. 
    2010-05-27 10:01:09.844 INFO Connected to 127.0.0.1:2809 from local port 45745 
    2010-05-27 10:01:09.846 FINE wrote 12 bytes to 127.0.0.1:2809 
    ... 
    

    跳过许多其他读/写流量

    1

    没有看到代码的其余部分,我不能肯定,但我敢肯定,你需要更改InitRef字符串是:

    -DORBInitRef.NameService=corbaloc::localhost:2809 
    

    当你的客户端连接,这应该给你命名服务的根命名上下文,然后你可以遍历NameContext树来获得你想要的服务器对象。

    相关问题