Невозможно изменить значения свойств компонента
У меня последняя версия Redhawk и CentOS, и я столкнулся с несколькими проблемами сразу. Изначально я не мог видеть Chalkboard и Sandbox, но эта проблема была решена, закомментировав (#) одну из двух строк в файле eclipse.ini:
-Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB
-Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton
Я нашел это исправление отсюда. Было отмечено, что, хотя явных ошибок не возникло, могут возникнуть непредвиденные проблемы.
У меня сейчас проблема в том, что значения свойств компонентов, такие как частота или амплитуда, не могут быть изменены. Я не могу изменить их из представления свойств или из редактора компонентов SCA. Я попытался отменить #, но проблема не исчезла. С тех пор я искал решения для JacORB, поскольку корень проблемы Chalkboard, похоже, отсюда и исходит.
Это последнее в цепочке "вызвано:" в журнале ошибок:
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, не комментируя ее, или какие-либо идеи о том, как я могу получить разрешение на изменение значений? Решения любого из них будут оценены.
1 ответ
ОБНОВЛЕНИЕ: Это не проблема, начиная с Java 7u65, 6u85. См. Ошибка загрузки класса ORB Singleton
Проблема заключается в том, что IDE пытается заменить некоторые связанные с CORBA классы, найденные в пути к классу начальной загрузки Java, на предоставленные JacORB. Java кратко запретила это для нескольких обновлений, начиная с 7u55 и 6u71. JacORB ссылается на необходимость изменить путь к классу начальной загрузки в своем руководстве, раздел 27.1: Руководство по программированию JacORB
Я смог обойти это с помощью своей IDE 1.9.0, изменив путь к классу начальной загрузки IDE, включив в него JacORB и зависимость JacORB. Мои шаги ниже предполагают IDE в /usr/local/redhawk/eclipse. Сначала извлеките банку JacORB из плагина:
cd /usr/local/redhawk/eclipse/plugins
jar xf org.jacorb_* lib/jacorb.jar
Далее обратите внимание на имя файла для плагина slf4j:
ls org.slf4j.api_*
Теперь измените /usr/local/redhawk/eclipse/eclipse.ini
так, чтобы две банки были добавлены в путь к начальной загрузке. Вы хотите использовать абсолютный путь к двум банкам. Отрывок из моего ниже:
...
-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, чуть выше Target SDR.