1

我正在编写一个用于学习目的的小型 OSGi 应用程序。我成功地设置了 Gemini JPA 和 DBAccess 服务以使用 JPA,只要我使用 persistence.xml 来配置我的持久性单元,它就可以正常工作。

然后我偶然发现了这个例子。在运行时提供持久性单元配置似乎是一个非常棒的功能。除了它不工作。我尝试了那个确切的代码(对于独立配置),它被执行了,但框架中没有任何变化。据我了解,不应该有一项新服务提供新的持久性单元吗?

我正在使用 Equinox 框架,gemini 和 dbaccess 的所有必要包都已安装并运行,并且 ConfigurationAdmin 包 ( org.eclipse.equinox.cm) 已安装并在我的代码执行时运行。

我像这样访问配置管理员:

ServiceReference<ConfigurationAdmin> s = context
            .getServiceReference(ConfigurationAdmin.class);
ConfigurationAdmin admin = context.getService(s);
4

1 回答 1

0

可能是启动顺序问题:必须在查找数据源以进行持久性之前创建配置。尝试重新启动持久性捆绑包或将持久性捆绑包的启动级别更改为更高级别,以便稍后启动。

此外,安装Felix Web 控制台以查看您的配置数据是否确实在配置管理器中注册可能会很方便。

于 2013-12-01T13:43:32.473 回答