Исключения, возникающие при использовании пользовательской команды Gogo

Я создал пользовательскую команду felix gogo, используя информацию из учебника bndtoools ( http://bndtools.org/tutorial.html).

Код используется ниже:

@Component(properties = {
    CommandProcessor.COMMAND_SCOPE + ":String=texter",
    CommandProcessor.COMMAND_FUNCTION + ":String=text"
 },
 provide = Object.class
)
public class SocketUser
{
    private ActualUser aUser = new ActualUser();

    public SocketUser()
    {
       // TODO Auto-generated constructor stub
    }

    public void text(String aMessage)
   {
       aUser.textClients(aMessage);
    }

}

Обратите внимание, что в классе ActualUser есть метод textClient(), который пока просто печатает сообщение.

Я устанавливаю соответствующие вещи в сборке и запускаю файлы bnd, включая декларативные сервисы Bnd Annotations. У меня также есть все необходимые пакеты Gogo во время выполнения.

При выполнении "справки" отображается список команд, который включает следующее:

felix:bundlelevel
felix:cd
felix:frameworklevel
felix:headers
felix:help
   .
   .
   .
scr:list
texter:text

где "texter:text" - моя добавленная команда.

Все выглядит хорошо, за исключением того, что, когда я пытаюсь использовать текстовую команду, я получаю следующие сообщения об ошибках:

g! text hello!
gogo: InvocationTargetException: null
g! text
gogo: IllegalArgumentException: Cannot coerce text() to any of [(String)]
g! 

Я думаю, что я понимаю второе сообщение об ошибке: команде нужна строка для работы. Я не понимаю, первый провал, хотя.

Кто-нибудь знает, почему эта команда не работает? Что вызывает эти InvocationTargetExceptions?

Что еще более важно, как я могу заставить их уйти?

Кто-то, пожалуйста, посоветуйте...

1 ответ

У меня просто была эта ошибка, потому что версия пакета org.apache.felix.gogo.runtime, рассчитанная на то, чтобы быть в моих Run Bundles, была плохой. Это было 0.11.0, когда у меня была ошибка.

введите описание изображения здесь

Я удалил пакет и снова нажал "разрешить". Он нашел другую версию пакета 0.14.0, как вы видите на рисунке, и теперь он работает хорошо.

Другие вопросы по тегам