有时候我们要查看项目运行情况,比如某个变量的值,这时候就可以把要查看变量的值放在某个方法里,karaf手动执行命令调用方法
先定义类里面要调用的方法
public class TestConsole {
public void comm_one(){
System.out.println("TestConsole.comm1");
}
public void comm_two(String name,Integer age){
System.out.println("name = [" + name + "], age = [" + age + "]");
}
}
2个方法,一个有参,一个无参
接着配置blueprint.xml文件
<bean id="testConsole" class="com.yf.af.comm.jms.TestConsole" />
<service auto-export="all-classes" ref="testConsole">
<service-properties>
<entry key="osgi.command.scope">
<!--定义命令的前缀,karaf输入此命令,在按tab键就可以提示底下可以执行方法-->
<value>comm</value>
</entry>
<entry key="osgi.command.function">
<array value-type="java.lang.String">
<!--要管控的方法,名字和类方法一样-->
<value>comm_one</value>
<value>comm_two</value>
</array>
</entry>
</service-properties>
</service>
打包更新,测试如下图,有参,无参,都测试一遍
测试结果,可以与TestConsole 类里作比较,是一样,成功,当然,这只是其中一种方法,LZ喜欢这种方式而已,还有继承org.apache.karaf.shell.console.OsgiCommandSupport 类,
实现org.apache.felix.gogo.commands.Action接口等方式