1

我有最新版本的 Redhawk 和 CentOS,我马上就遇到了一些问题。最初我看不到黑板和沙盒,但通过注释掉 eclipse.ini 文件中两行之一的 (#) 解决了这个问题:

 -Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB
 -Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton

我从这里找到了这个修复。值得注意的是,虽然没有出现明显的错误,但可能存在一些无法预料的问题。

我现在遇到的问题是无法更改组件的属性值,例如频率或幅度。我无法从属性视图或 SCA 组件编辑器中更改它们。我尝试撤消#,但问题仍然存在。从那以后,我一直在寻找 JacORB 的解决方案,因为黑板问题的根源似乎源于那里。

这是错误日志中“由:”链中的最后一个:

Caused by: 
     java.lang.ClassNotFoundException: org.jacorb.orb.ORBSingleton
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    at org.omg.CORBA.ORB.create_impl_with_systemclassloader(ORB.java:305)
    ... 91 more

任何人都对如何解决 JacORB 问题而不发表评论有任何想法,或者对我如何获得更改值的许可有任何想法?任何一个的解决方案将不胜感激。

4

1 回答 1

2

更新:这不是从 Java 7u65、6u85 开始的问题。请参阅ORB 单例类加载错误

问题是由于 IDE 试图用 JacORB 提供的类替换 Java 引导类路径中的一些与 CORBA 相关的类。从 7u55 和 6u71 开始的一些更新,Java 暂时不允许这样做。JacORB 在其手册第 27.1 节: JacORB 编程指南中引用了修改引导类路径的需要

通过修改 IDE 的引导类路径以包含 JacORB 和 JacORB 依赖项,我能够使用 1.9.0 IDE 解决此问题。我下面的步骤假设 /usr/local/redhawk/eclipse 中有一个 IDE。首先,从插件中提取 JacORB jar:

cd /usr/local/redhawk/eclipse/plugins
jar xf org.jacorb_* lib/jacorb.jar

接下来,记下 slf4j 插件的文件名:

ls org.slf4j.api_*

现在修改/usr/local/redhawk/eclipse/eclipse.ini,以便将两个 jar 附加到引导类路径。您需要使用两个 jar 的绝对路径。我的一个片段如下:

...
-vmargs
-Xms40m
-Xmx512m
-XX:MaxPermSize=256m
-Xbootclasspath/p:/usr/local/redhawk/eclipse/plugins/lib/jacorb.jar:/usr/local/redhawk/eclipse/plugins/org.slf4j.api_1.6.4.v20120130-2120.jar
...

如果您从控制台启动,您可能会看到来自 slf4j 的错误,但我没有发现它有问题。如果您操作正确,您应该会在 SCA Explorer 视图中看到 Sandbox 显示在目标 SDR 的上方。

于 2014-06-21T23:19:27.827 回答