有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在另一个项目中使用Eclipse OSGi Java插件?

这对我来说是全新的,有点复杂。我在Eclipse中使用标准OSGi框架创建了一个插件项目。目的是使用此捆绑连接到H2 DB。这是激活剂。爪哇: 包数据服务

import java.sql.Connection;
import java.sql.DriverManager;

import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;

public class Activator implements BundleActivator {

private static BundleContext context;
private Connection conn=null;

static BundleContext getContext() {
    return context;
}


public void start(BundleContext bundleContext) throws Exception {
    Activator.context = bundleContext;
    Class.forName("org.h2.Driver");
    conn = DriverManager.getConnection("jdbc:h2:~/test","sa","123456");
    System.out.print("Connection opened...");
}

public void stop(BundleContext bundleContext) throws Exception {
    Activator.context = null;
    conn.close();
    System.out.print("Connection closed...");
}

}

我在OSGi框架内运行这个项目。它在那里工作。但我的问题是,如何在另一个项目中使用此捆绑包


共 (1) 个答案

  1. # 1 楼答案

    问题是您真正想要向其他捆绑包提供什么。 如果您想提供一种访问数据库的通用方法,那么您可以提供一个数据源。在这种情况下,我建议使用pax-jdbc-config,因为它可以帮你完成所有的繁重工作

    另一个选项是Aries transactioncontrol,它甚至更易于使用,但使您的用户代码依赖于事务控制API

    如果你想提供更高层次的服务,那么服务是最好的选择。为您的服务创建一个接口,并在包中实现该接口。然后简单地将对象导出为OSGi服务。然后,其他捆绑包可以接受该服务。我建议使用声明性服务来提供和使用服务。见this example