Cannot Change Component Property Values

2019-01-29 02:10发布

I have the latest version of Redhawk and CentOS, and I have run into a few problems right off the bat. Initially I couldn't see the Chalkboard and Sandbox, but that issue was resolved by commenting out (#) one of two lines in the eclipse.ini file:

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

I found this fix from here. It was noted that while there were no obvious errors that arose, there may be some unforeseen problems.

The issue I now have is that the property values of the components, like frequency or amplitude, cannot be altered. I can't alter them from the properties view or from the SCA Component Editor. I tried undoing the #, but the problem persisted. I have since looked into JacORB for solutions since the root of the Chalkboard problem seems to stem from there.

This is the last in the "caused by:" chain in the error log:

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

Anyone have any ideas on how to fix the JacORB issue without commenting it out or any ideas on how I can get permission to alter the values? Solutions to either one would be appreciated.

1条回答
对你真心纯属浪费
2楼-- · 2019-01-29 02:35

UPDATE: This is not an issue starting with Java 7u65, 6u85. See ORB Singleton Class Loading Bug

The problem is due to the IDE trying to replace some CORBA-related classes found in the Java bootstrap class path with JacORB-supplied ones. Java briefly disallowed this for a few updates starting with 7u55 and 6u71. JacORB references the need to modify the bootstrap class path in their manual, section 27.1: JacORB Programming Guide

I was able to work around this with my 1.9.0 IDE by modifying the IDE's bootstrap class path to include JacORB and a JacORB dependency. My steps below assume an IDE in /usr/local/redhawk/eclipse. First, extract the JacORB jar from the plugin:

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

Next, note the filename for the slf4j plugin:

ls org.slf4j.api_*

Now modify /usr/local/redhawk/eclipse/eclipse.ini so that the two jars are prepended to the bootstrap classpath. You'll want to use the absolute path to the two jars. A snippet from mine is below:

...
-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
...

If you startup from a console, you may see an error from slf4j, but I haven't found it to be problematic. If you've done it correctly, you should see the Sandbox show up in the SCA Explorer View, just above the Target SDR.

查看更多
登录 后发表回答