#controls #components #redhawksdr
#Элементы управления #Компоненты #redhawksdr
Вопрос:
У меня последняя версия 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, не комментируя ее, или какие-либо идеи о том, как я могу получить разрешение на изменение значений? Будут оценены решения для любого из них.
Ответ №1:
ОБНОВЛЕНИЕ: это не проблема, начиная с Java 7u65, 6u85. См. Ошибка загрузки одноэлементного класса ORB
Проблема связана с тем, что IDE пытается заменить некоторые классы, связанные с CORBA, найденные в пути к классу начальной загрузки Java, на классы, предоставленные JacORB. Java ненадолго запретила это для нескольких обновлений, начиная с 7u55 и 6u71. JacORB ссылается на необходимость изменения пути к классу начальной загрузки в своем руководстве, раздел 27.1: Руководство по программированию JacORB
Я смог обойти это с помощью своей интегрированной среды разработки 1.9.0, изменив путь к классу начальной загрузки IDE, чтобы включить JacORB и зависимость JacORB. Мои шаги ниже предполагают IDE в /usr/local/redhawk / eclipse. Сначала извлеките jar-файл 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, чуть выше целевого SDR.
Комментарии:
1. Решена проблема. Спасибо за помощь. У меня было ощущение, что это как-то связано с классом начальной загрузки JacORB, но я не знал, что с этим делать. Не нужно было комментировать предложенную строку JacORB в eclipse.ini, чтобы она работала. Еще раз спасибо!