我正在尝试运行我编写的Java应用程序来订阅CORBA事件服务。它在我的Windows机器上运行正常,但是一旦我将它部署到UNIX服务器,它就会给我一个org.omg.CORBA.NO_IMPLEMENT异常。关于为什么会发生这种情况的任何想法?我在我的Windows机器上使用JacORB并传递VM参数来初始化客户端ORB,但我不确定如何在UNIX上执行此操作以及是否有必要。
提前致谢!
答案 0 :(得分:2)
JRE带有完整的Corba实现,您需要告诉它忽略这些并使用JacOrb代替。
在Unix上:
-Xbootclasspath:${JACORB_HOME}/lib/jacorb.jar:${JAVA_HOME}/jre/lib/rt.jar:${CLASSPATH}
-Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB
-Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton
查找docs for JacORB 这是非常好的解释。您需要安装jars文件,并且需要指向传递到JVM的ior或nameservice。
如果您的问题是如何在shell中执行此操作,请对该问题进行评论或重新说明。
答案 1 :(得分:0)
org.omg.CORBA.NO_IMPLEMENTIMPLEMENT的Javadoc:
此异常表示即使调用的操作存在(它具有IDL定义),也不存在该操作的实现。例如,如果客户端从接口存储库请求对象的类型定义,则ORB可以引发NO_IMPLEMENT,但ORB不提供接口存储库。
它包含次要代码,其中提供了有关导致异常的更详细信息以及完成状态。它也可能包含描述异常的字符串
所以我想你需要看一下Exception究竟说的是什么。我敢打赌,你需要添加这些java参数来初始化ORB客户端。
答案 2 :(得分:0)
如果版本不同,可能是您没有注意到JacorB 1.3.21中包名称的更改已从jacorb更改为 org .jacorb
org.omg.CORBA.ORBClass=jacorb.orb.ORB
org.omg.CORBA.ORBSingletonClass=jacorb.orb.ORBSingleton
到此:
org.omg.CORBA.ORBClass=org.jacorb.orb.ORB
org.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton
如果这不是原因,请发布确切的版权