在Unix上运行Java CORBA客户端

时间:2010-04-17 08:14:59

标签: java corba

我正在尝试运行我编写的Java应用程序来订阅CORBA事件服务。它在我的Windows机器上运行正常,但是一旦我将它部署到UNIX服务器,它就会给我一个org.omg.CORBA.NO_IMPLEMENT异常。关于为什么会发生这种情况的任何想法?我在我的Windows机器上使用JacORB并传递VM参数来初始化客户端ORB,但我不确定如何在UNIX上执行此操作以及是否有必要。

提前致谢!

3 个答案:

答案 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

如果这不是原因,请发布确切的版权