我正在编写一个用于学习的小型OSGi应用程序。我成功地设置了Gemini JPA和DBAccess服务来使用JPA,只要我使用persistence.xml来配置我的持久化单元,它就能正常工作。
然后我偶然发现了This Example.,它似乎是一个在运行时提供持久化单元配置的非常棒的功能。除非它不起作用。我尝试了完全相同的代码(对于独立配置),它被执行了,但框架中没有任何变化。据我所知,不是应该有一个新的服务来提供新的持久性单元吗?
我使用的是Equinox框架,gemini和dbaccess的所有必需捆绑包都已安装并正在运行,ConfigurationAdmin捆绑包(org.eclipse.equinox.cm)也已安装并在我的代码执行点运行。
我按如下方式访问Configuration Admin:
ServiceReference<ConfigurationAdmin> s = context
.getServiceReference(ConfigurationAdmin.class);
ConfigurationAdmin admin = context.getService(s);发布于 2013-12-01 21:43:32
可能是启动顺序问题:必须在查找数据源以进行持久化之前创建配置。尝试重新启动持久性捆绑包,或者将持久性捆绑包的起始级别更改为更高级别,以便稍后启动。
此外,安装Felix web console以查看您的配置数据是否确实已注册到配置管理器可能会很方便。
https://stackoverflow.com/questions/20260844
复制相似问题