Osgi 使用gogo自定义命令时生成的异常

Osgi 使用gogo自定义命令时生成的异常,osgi,apache-felix,gogo-shell,Osgi,Apache Felix,Gogo Shell,我已经使用BNDTools教程()中的信息创建了一个felix gogo自定义命令 使用的代码如下: @Component(properties = { CommandProcessor.COMMAND_SCOPE + ":String=texter", CommandProcessor.COMMAND_FUNCTION + ":String=text" }, provide = Object.class ) public class SocketUser { pri

我已经使用BNDTools教程()中的信息创建了一个felix gogo自定义命令

使用的代码如下:

@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注释声明性服务。我还拥有运行时中所有必需的Gogo包

执行“帮助”会显示命令列表,其中包括以下内容:

felix:bundlelevel
felix:cd
felix:frameworklevel
felix:headers
felix:help
   .
   .
   .
scr:list
texter:text
其中“texter:text”是我添加的命令

所有这些似乎都很好,只是当我尝试使用text命令时,会收到以下失败消息:

g! text hello!
gogo: InvocationTargetException: null
g! text
gogo: IllegalArgumentException: Cannot coerce text() to any of [(String)]
g! 
我想我理解了第二条失败消息:命令需要一个字符串才能工作。不过,我不理解第一次失败

有人知道为什么这个命令不起作用吗?是什么导致了这些InvocationTargetException

更重要的是,我怎样才能让他们离开


有人请建议

我之所以出现这个错误,是因为计算得出的运行包中的org.apache.felix.gogo.runtime包的版本不好。我出错的时候是0.11.0

我删除了该捆绑包并再次单击“解决”。它找到了捆绑包0.14.0的另一个版本,如图所示,现在运行良好