0

我在我的项目中使用 Apache Felix HTTP Service Jetty 2.2.0。根据文档,我编写了以下代码来更改默认服务端口。

ConfigurationAdmin configAdmin = // get ConfigurationAdmin from OSGi service registry
Configuration config = configAdmin.getConfiguration("org.apache.felix.http" ,  null);
Dictionary<String, Object> props = config.getProperties();
if(props == null)
{
  props = new Hashtable<String, Object>();
}
props.put("org.osgi.service.http.port", newport);
config.update(props);

正如你所看到的,我得到了配置对象,更新了属性并调用了更新方法。这一切都很好,但HttpService由于某种原因没有选择新的配置。我究竟做错了什么?之间我可以使用系统属性方法更改端口。但我希望能够使用ConfigurationAdmin它来做到这一点。我正在运行Equinox 3.8容器

4

1 回答 1

0

您使用 OSGi 系统属性而不是 Felix Http 配置管理属性...这是一个示例:

   "service.pid":                              "org.apache.felix.http", 
   "org.apache.felix.http.enable":             true, 
   "org.osgi.service.http.port":               8080,
   "org.apache.felix.http.debug":              true, 
   "org.apache.felix.https.debug":             true, 
   "org.apache.felix.https.enable":            true, 
   "org.osgi.service.http.port.secure":        8085,
   "org.apache.felix.https.keystore":          "@{resource:example.keystore.ks}", 
   "org.apache.felix.https.keystore.password": "@{.example.keystore}",
于 2013-05-03T18:10:09.647 回答