【发布时间】:2014-04-25 14:50:27
【问题描述】:
我的使用替代 ORB 实现 (OpenORB) 的 CORBA/Webstart 应用程序不再适用于 Java7u55。
出现以下异常:
Error org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation org.openorb.CORBA.ORBSingleton vmcid: 0x0 minor code: 0 completed: No
org.omg.CORBA.INITIALIZE: can't instantiate default ORB implementation org.openorb.CORBA.ORBSingleton vmcid: 0x0 minor code: 0 completed: No
at org.omg.CORBA.ORB.create_impl_with_systemclassloader(Unknown Source)
at org.omg.CORBA.ORB.init(Unknown Source)
at org.openorb.CORBA.kernel.OpenORBLoader.init(Unknown Source)
at org.openorb.CORBA.ORB.set_parameters(Unknown Source)
at org.omg.CORBA.ORB.init(Unknown Source)
...
Caused by: java.lang.ClassNotFoundException: org.openorb.CORBA.ORBSingleton
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
... 17 more
我认为 orb.omg.CORBA.ORB.init() 的更改是不再找到 ORB 实现的类的原因,因为现在在这里使用 SystemClassLoader 来创建 ORB 实例而不是当前线程的 ContextClassLoader 作为之前。
作为一种解决方法,我已将包含我正在使用的 ORB 实现的 org.omg.CORBA API 的 Jar 复制到 <jre-home>/lib/endorsed/,希望它会被使用,但仍然使用 rt.jar 中的实现。
任何想法如何解决这个问题?
【问题讨论】:
标签: java-7 java-web-start corba