我希望能帮助解决这个奇怪的问题.我们正在运行Jacorb名称服务器,我有一个简单的客户端,我正在尝试连接并做了很棒的CORBA伏都教.名称服务器正在运行,但是当我尝试启动我的Java应用程序时,我得到了一个"Connection failure" error (org.omg.CORBA.COMM_FAILURE, minor code 201, "caused by java.net.ConnectionException: Connection refused: connect").
这是奇怪的部分.该错误报告它正在尝试使用默认端口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
Run Code Online (Sandbox Code Playgroud)
我也尝试了没有第一个大写字母D的参数(我已经看到了两种方式,我不知道其中的区别).
现在,如果我输入-ORBInitialPort 2809,那么客户端似乎尝试连接,但后来我收到corba.OBJECT_NOT_EXIST错误.
我可以使用任何人的帮助或建议.
连接被拒绝。这听起来像是防火墙/程序未运行的问题。尝试一下telnet <machine> 2809。如果一切正常运行/启用,您应该得到“已连接到”而不是拒绝。
我在 UNIX 客户端上运行,因此路径使用 UNIX 样式。
jacORB 安装正确吗?例如,从 orb.properties 文件中获取名称服务条目(在 ${JAVA_HOME}/jre/lib/ 中,我使用“ ORBInitRef.NameService=corbaloc::localhost:2809/NameServer”,因为在生产名称服务器上使用“NameServer”,而不是“Standard....”的其他字符串
属性文件中的其他更改是将路径设置为 UNIX 样式(即 e:\NS_Ref -> /tmp/NS_Ref)
jacorb.naming.ior_filename=/tmp/NS_Ref
1a. 在属性文件中设置 http:// 似乎对客户端解析没有任何作用。
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 启动时将记录它从中读取属性的位置,并且不应引发任何错误。如果确实如此,您的属性文件就有问题。
虚拟机参数。-D 用于设置系统属性。然后,任何 Java 代码都可以通过 System.getProperty() 访问如此定义的任何属性。尽管我也见过使用“非 D”,但我一直在使用 D。
-DORBInitRef.NameService=corbaloc::localhost:2809/NameService -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
...
Run Code Online (Sandbox Code Playgroud)
跳过大量其他读/写流量