当前位置: 技术问答>java相关
小弟在做corba的时候出了个问题,希望各位能坐答,在线给分!
来源: 互联网 发布时间:2015-07-08
本文导语: 1,创建idl文件 2,编译idl文件,产生stub 和 skeleton文件 3,写客户端和服务器端 4,javac客户端可服务器端,这些都正常,都是按照例子来的 做下面两步的时候出现点问题 (2)启动一个MS-DOS命令解释器,输入以...
1,创建idl文件
2,编译idl文件,产生stub 和 skeleton文件
3,写客户端和服务器端
4,javac客户端可服务器端,这些都正常,都是按照例子来的
做下面两步的时候出现点问题
(2)启动一个MS-DOS命令解释器,输入以下命令,确保名字服务器处于运行状态:
tnameserv -ORBInitialPort 1050
(3)启动另一个MS-Dos命令解释器,输入以下命令,启动Show服务器:
java ShowServer -ORBInitialPort 1050
E:javacorba>tnameserv -ORBInitialPort 1050
Initial Naming Context:
IOR:000000000000002849444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578743a312e3000
0054000101000000000d3137322e31362e35382e313400000dfe00000018afabcaff00000002e29317dc0000000800000000
0001000000140000000000010020000000000001010000000000
TransientNameServer: setting port for initial object references to: 1050
Ready.
我想这个应该是正常的吧!
E:javacorba>java ShowServer -ORBInitialPort 1050
ERROR: org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation com.inprise.vbroker.or
completed: No
org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation com.inprise.vbroker.orb.ORB
eted: No
at org.omg.CORBA.ORB.create_impl(ORB.java:286)
at org.omg.CORBA.ORB.init(ORB.java:328)
at ShowServer.main(ShowServer.java:33)
运行服务器端的时候出现了上述问题,请各位给予解答!
2,编译idl文件,产生stub 和 skeleton文件
3,写客户端和服务器端
4,javac客户端可服务器端,这些都正常,都是按照例子来的
做下面两步的时候出现点问题
(2)启动一个MS-DOS命令解释器,输入以下命令,确保名字服务器处于运行状态:
tnameserv -ORBInitialPort 1050
(3)启动另一个MS-Dos命令解释器,输入以下命令,启动Show服务器:
java ShowServer -ORBInitialPort 1050
E:javacorba>tnameserv -ORBInitialPort 1050
Initial Naming Context:
IOR:000000000000002849444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578743a312e3000
0054000101000000000d3137322e31362e35382e313400000dfe00000018afabcaff00000002e29317dc0000000800000000
0001000000140000000000010020000000000001010000000000
TransientNameServer: setting port for initial object references to: 1050
Ready.
我想这个应该是正常的吧!
E:javacorba>java ShowServer -ORBInitialPort 1050
ERROR: org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation com.inprise.vbroker.or
completed: No
org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation com.inprise.vbroker.orb.ORB
eted: No
at org.omg.CORBA.ORB.create_impl(ORB.java:286)
at org.omg.CORBA.ORB.init(ORB.java:328)
at ShowServer.main(ShowServer.java:33)
运行服务器端的时候出现了上述问题,请各位给予解答!
|
在原码中是这样的
try {
return (ORB) Class.forName(className).newInstance();
} catch (ClassNotFoundException ex) {
// Eat the exception and try again below...
} catch (Exception ex) {
throw new INITIALIZE(
"can't instantiate default ORB implementation " + className);
}
显然是Class.forName出错,而Class.forName可以抛出的有
LinkageError - if the linkage fails
ExceptionInInitializerError - if the initialization provoked by this method fails
ClassNotFoundException - if the class cannot be located
自然是前两者。
建议你在ORB orb = ORB.init(args, null);的前面加上
Properties myprop=new Properties();
myprop.setProperty("org.omg.CORBA.ORBClass","com.sun.corba.se.internal.iiop.ORB");
将 ORB orb = ORB.init(args, null);
改为ORB orb = ORB.init(args, myprop);当然要import java.util.*;
试一试, 不行再说
|
你用的org.omg.CORBA.INITIALIZE不对,你用了inprise提供的实现,但是,事实上,你的程序路径里好像没有相关的jar文件.你肯定安装了inprise 的visbroker 或者 application server.它修改了你的缺省配置.已经有1年没有玩corba了,所以,也不能提出更详细的了.