1、创建项目
创建一个maven项目,并在该项目下创建两个maven module,一个为server,令一个为client
server为发布服务的bundle,client为使用服务的bundle
2、代码实现
与之前的helloworld一样,写代码
server中定义接口,接口的实现类,实现BundleActivator的类(发布服务)
client中,实现BundleActivator的类(使用服务)
结构如下:
1、server模块
IHelloWorld接口
public interface IHelloWorld {
String sayHello(String name);
}
实现接口HelloWorldImp
public class HelloWorldImp implements IHelloWorld {
@Override
public String sayHello(String name) {
return "你好" + name;
}
}
HelloWorldBundle(实现BundleActivator的类,为该bundle的启动类)
public class HelloWorldBundle implements BundleActivator{
@Override
public void start(BundleContext bundleContext) throws Exception {
System.out.println("HelloWorldBundle");
IHelloWorld server = new HelloWorldImp();
Dictionary<String, Object> properties = new Hashtable<>();
bundleContext.registerService(IHelloWorld.class, server, properties);
System.out.println("发布服务");
}
@Override
public void stop(BundleContext bundleContext) throws Exception {
}
}
2、client模块
ClinetBundle(该bundle的启动类)
public class ClinetBundle implements BundleActivator {
@Override
public void start(BundleContext bundleContext) throws Exception {
System.out.println("Client");
ServiceReference<IHelloWorld> reference = bundleContext.getServiceReference(IHelloWorld.class);
System.out.println("reference-------" + reference);
if (Objects.nonNull(reference)){
IHelloWorld server = bundleContext.getService(reference);
if (Objects.nonNull(server)){