java - OSGi 和 Gemini JPA : Using the Configuration Admin

标签 java configuration osgi eclipse-gemini

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

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

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

我像这样访问配置管理:

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

最佳答案

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

此外,安装 Felix web console 可能会很方便查看您的配置数据是否确实已注册到配置管理器。

关于java - OSGi 和 Gemini JPA : Using the Configuration Admin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20260844/

相关文章:

java - 如何使用HttpSecurity(Spring Security)应用角色?

eclipse - 为动态 Eclipse 功能设置启动级别 : alternatives to p2. inf?

java - 从一个来源安装多个包

java - Android RecyclerView 网格水平和垂直居中项目而不滚动

java - JTextPane 不显示在动态添加的 JFrame 内

windows - 我可以有多个 php.ini 文件吗?

java - 来自现有 jar 的 Eclipse 插件

java - 为什么 JSP/JSTL 除以 1000 有时会得到余数?

Java JTable获取选中行的数据

java - GitHub - Travis ci 工作被拒绝