Невозможно изменить значения свойств компонента

#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, чтобы она работала. Еще раз спасибо!