Osgi 使用gogo自定义命令时生成的异常
我已经使用BNDTools教程()中的信息创建了一个felix 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
@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的另一个版本,如图所示,现在运行良好