问题标签 [dosgi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
osgi - Servicemix 4、DOSGi 和 Zookeeper
这是从fusesource 论坛和servicemmix 论坛交叉发布的。
我无法让 DOSGi 在 FUSE 中工作。我正在尝试通过 Zookeeper 发现将 CXF 的 DOSGi 1.1-SNAPSHOT 放到 FUSE 4.1.0.2 上。我也在使用 Zookeepr 3.2.1。
一切都在 Felix 2.0.0 上完美运行。我只是按照DOSGi Discovery 页面上的说明安装Discovery Demo包。对于 DOSGi,我只使用cxf-dosgi-ri-singlebundle-distribution-1.1-SNAPSHOT.jar用于 DSW 和 cxf-dosgi-ri-discovery-singlebundle-distribution-1.1-SNAPSHOT.jar 用于 zookeeper 发现。然后,当我在一台机器上使用示例服务 impl 启动示例包时,我会在 zookeeper 中看到节点创建。然后我在另一台机器上启动示例客户端,并在服务机器上看到输出。效果很好。我确实有一个关于 xml 错误被忽略的警告,因为找不到一些 XSD,但它似乎没有任何影响。哦,我还必须先安装 OSGi 纲要包。
当我搬到 Fuse 时,我没有这样的运气。OSGi 纲要包附带了 fuse,因此无需安装它。我应该只能安装 dosgi-ri 单包和 dosgi-ri-discovery 单包,但这不起作用。dosgi-ri singlebundle 有各种与 servicemix 重叠的包。我收到有关端口 8081 的错误?或者无论 osgi.http.service 参数是什么,都已经在使用中。显然,dosgi-ri singlebundle 带有 pax webservice,它读取与 servicemix 附带的 servicemix http 服务包相同的属性。那是当我切换到 cxf-dosgi-ri-multibundle-distribution-1.1-SNAPSHOT.zip并解压缩以获取我想要的部分。我从 dosgi-ri multibundle 中取出 dsw 包并安装它。由于 jdom 依赖性,没有运气。然后我安装了 ri multibundle 中的 jdom,它工作正常。然后回到dsw,安装,所以我想我到了某个地方。是时候回去安装 ri-discovery 单包了。当我开始时,我得到一个 pax 日志服务 classcastexception 说它不能转换为 osgi logservice 或其他东西。但这只是一个日志记录错误,在底部它说它找不到http://schemas.xmlsoap.org/soap/http的传输类. 好的,所以日志记录被搞砸了,我错过了一些运输类。好吧,很明显,这是由于 ri multibundle 没有安装足够的东西,因为它在 felix 上工作。所以里面还有什么是必要的。检查时的 cxf-minimal-bundle 缺少导致最后一个错误的类。所以我安装它。尝试启动发现包,但我最终遇到了某种 corbabroker 异常。重量级 谁在这一切中使用了 corba?然后我返回并撤消所有这些并尝试坚持使用 ri 和 ri-discovery 的单包发行版,但只需关闭 servicemix http 服务。这会使 servicemix 崩溃,我无法重新启动它,因为 cxf jbi 组件最终会产生不满意的依赖关系。奇怪的。我会忽略这一点,因为无论如何我都不使用它们,并尝试开始我的示例。能' t 启动示例,因为它说码头无法启动,因为端口已在使用中。没有意义,因为我已经关闭了 servicemix http 服务。然后我重新启动码头。作品?也许。我的服务已注册,我可以使用 firefox 浏览到 wsdl,但在 zookeeper 中没有注册。尝试关闭 ri-discovery 包并重新启动它,但我得到一个空指针异常。显然,由于上述错误之一,ri-discovery 从未真正启动。然后我开始尝试拆开 ri-discovery 单包并取出内部部件。这不起作用,因为它显然是必要的,即使里面有一些我们可以不用的库。没有意义,因为我已经关闭了 servicemix http 服务。然后我重新启动码头。作品?也许。我的服务已注册,我可以使用 firefox 浏览到 wsdl,但在 zookeeper 中没有注册。尝试关闭 ri-discovery 包并重新启动它,但我得到一个空指针异常。显然,由于上述错误之一,ri-discovery 从未真正启动。然后我开始尝试拆开 ri-discovery 单包并取出内部部件。这不起作用,因为它显然是必要的,即使里面有一些我们可以不用的库。没有意义,因为我已经关闭了 servicemix http 服务。然后我重新启动码头。作品?也许。我的服务已注册,我可以使用 firefox 浏览到 wsdl,但在 zookeeper 中没有注册。尝试关闭 ri-discovery 包并重新启动它,但我得到一个空指针异常。显然,由于上述错误之一,ri-discovery 从未真正启动。然后我开始尝试拆开 ri-discovery 单包并取出内部部件。这不起作用,因为它显然是必要的,即使里面有一些我们可以不用的库。显然,由于上述错误之一,ri-discovery 从未真正启动。然后我开始尝试拆开 ri-discovery 单包并取出内部部件。这不起作用,因为它显然是必要的,即使里面有一些我们可以不用的库。显然,由于上述错误之一,ri-discovery 从未真正启动。然后我开始尝试拆开 ri-discovery 单包并取出内部部件。这不起作用,因为它显然是必要的,即使里面有一些我们可以不用的库。
故事的结局。无法让它工作。其他人可以让它工作吗?我只想在 SMX4 中运行发现示例。我很确定这只是一个捆绑冲突问题。这不是 OSGi 应该解决的问题吗???这比告诉我你依赖什么 jar 并让我设置我的类路径更糟糕。至少那时我最终会让事情运行起来。
我认为,我接下来的步骤将是再次尝试使用 ri-multibundle、dsw 和 jdom,以及 ri-discovery singlebundle。然后我会尝试一些 cxf-fuse 包或一些 cxf-rt 包来解决肥皂传输问题。
编辑说明:我需要的不仅仅是显示处于活动状态的 DOSGi 包。在您尝试通过它们公开服务之前,它们实际上并没有做太多事情。我确实需要看到多台机器向 zookeeper 实例注册服务以及其他使用这些服务的机器——就像正在运行的 DOSGi Discovery Sample 一样。
通过使用提到的最小 cxf 捆绑包,我已经能够让 cxf 将分布式服务示例公开为肥皂网络服务,方法是删除部分原始 cxf 捆绑包并重新启动码头服务,然后启动示例服务......或通过安装 cxf 最小捆绑包,然后启动我的服务,然后立即卸载 cxf 最小捆绑包,然后重新启动码头......我认为这是顺序。这些都不会从干净的启动中工作,并且必须重新启动服务作为使 DOSGi 工作的过程是很糟糕的。我什至不知道为什么安装然后卸载会做任何事情——它不应该留下任何工件。
osgi - 我可以同时使用分布式 OSGi 和 ConfigurationAdmin 吗?
如果:
- 我有一个包,我希望在 n 个 OSGi 容器上运行,导出一些服务;
- 我正在使用 DS 注册配置更改时的修改方法,因此我可以通过 ConfigurationAdmin 更新服务,并根据 RFC119 远程导出接口;
- 我正在使用 Discovery 从其他盒子上的其他捆绑包中调用这些服务,是否可以使用 ConfigurationAdmin 对此服务进行中央配置,以便我可以通过 Configuration Admin 发布配置更改,并且它会被所有实例接收服务运行?
从我读过的所有内容看来,ConfigurationAdmin 不支持网络,并且对于每个 OSGi 容器都是本地的?
提前感谢您的洞察力:)
cxf - 如何使用 Apache CXF D-OSGi 开发分布式系统?
我的开发环境和需求:Eclipse3.6、Equinox框架、Apache cxf-dosgi-ri-singlebundle-distribution-1.2.jar
想试试demo分布式程序,但是导入的cxf jar好像不能正常工作。首先,我下载的 cxf-dosgi 是一个 zip 文件,我只是将其扩展名重命名为 jar。我将它导入到 Eclipse 工作台中,没有提示错误。但是当我尝试使用 osgi、osgi.service、javax.servlet 运行它时,它会以红色显示大量控制台消息,这让我感到恐慌。
实际上当我添加服务,impl,客户端包时,系统无法工作,我认为启动cxf-dosgi包时一定有问题。
谁能帮我?
web-services - 无法使用 ApacheCXF dosgi 访问 wsdl
我正在使用 Apache CXF D-OSgi 和 Eclipse Equinox 作为我的开发环境,我注册了服务,但我无法在 IE 中打开 wsdl 页面。服务注册码如下:
当我尝试运行客户端程序时,它显示以下错误:
信息:收到未处理的事件类型:1 2011-5-10 23:22:04 org.apache.cxf.dosgi.topologymanager.TopologyManager$1 modifiedService 信息:TopologyManager: EndpointListener changed ... 2011-5-10 23:22:04 org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore importService 信息:importService() 端点:{endpoint.id=http://localhost:9000/1, objectClass=[Ljava.lang.String;@988707, osgi. remote.configuration.pojo.address=http://localhost:9000/1, osgi.remote.configuration.type=pojo, osgi.remote.interfaces=, service.imported=true, service.imported.configs=org.apache.cxf.ws} 2011-5-10 23:22:04 org.apache.cxf.dosgi.topologymanager.RemoteServiceAdminListenerImpl remoteAdminEvent 信息:收到未处理的事件类型: 1 2011-5-10 23:22:04 org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore importService 信息:importService() 端点:{endpoint.id=http://localhost:9000/1, objectClass=[ Ljava.lang.String;@988707, osgi.remote.configuration.pojo.address=http://localhost:9000/1, osgi.remote.configuration.type=pojo, osgi.remote.interfaces= , service.imported=是的,service.imported.configs=org.apache.cxf.ws} 2011-5-10 23:22:04 org.apache.cxf.dosgi.topologymanager.RemoteServiceAdminListenerImpl remoteAdminEvent 信息:收到未处理的事件类型:1
java - CXF DOSGi 忽略注释
我正在使用JAX-RS 示例。此示例包含两个 RESTful Web 服务,一个带有注释,另一个没有。
我使用 maven 构建它并将其与 CXF DOSGi 单一捆绑分发一起部署到 Felix。一个没有注释的工作正常,但是另一个有注释的似乎完全被忽略了。我在日志中收到以下消息:
glassfish - Glassfish 中的 DOSGI 支持
我正在使用带有 Glassfish 3.0.1 的 OSGI。我们使用 Jersey REST 作为资源层。我们有很多 osgi 服务。我们计划将它们解耦并将其部署在云中。我们这样做的一种方法是进行 http REST 调用。但我们想在 api 级别进行服务到服务调用。一种方法是使用 DOSGI。但是 Glassfish 3.0.1 似乎不支持 DOSGI。还有其他建议吗?
osgi - 如何使用 R-Osgi 获取远程“导出包”?
R-Osgi 为我们提供了一种从远程 OGSi 容器调用服务的方法。网址:http ://r-osgi.sourceforge.net 。
我是 R-OSGi 的新手,现在我想将我的 OSGi 容器拆分成小的容器并通过 R-Osgi 相互交互,因为它太大了。但似乎 R-OSGi 只为注册服务提供了一种方式。我们知道除了Service之外最流行的2个bundle之间的交互方式,“exported-package”也被广泛使用。
那么,有没有人熟悉 R-OSGi 并知道如何从远程 OSGi 容器中使用“导出包”?
感谢您的任何回复。
osgi - 在多宿主机器上部署 Web 服务
我通过 OSGi 使用 Apache CXF 将我的 OSGi 服务公开为 Web 服务。我可以通过“org.apache.cxf.ws.address”属性设置 web 服务 uri,但这会将我与服务器上的单个 IP 地址联系起来。某些服务需要部署在我无法控制的服务器上,因此我希望能够将服务部署到服务器上的所有地址。
我怎样才能做到这一点?
java - 分布式 OSGi - 跨所有容器管理捆绑包的正确方法是什么?
我们正在考虑在我们的企业环境中使用分布式 OSGi。
我们将有以下设置:
- 许多主机上的 10 到 100 个 OSGi 容器提供各种服务。
- 其中许多服务由多个容器提供。
- 其中一些服务可能需要在所有容器中保持一致(部署相同的版本)。
跨所有容器管理包的生命周期(安装、启动、更新、停止、卸载)的正确方法是什么?
几个要求:
- 由于容器可能很多,所以应该一起处理;即当我要更新一个包时,一个命令应该更新该包已经存在的所有容器。
- 命令必须是可重复的:首先在测试系统上执行命令,然后在测试完成后在生产系统上重复完全相同的命令。
我很欣赏有关上述问题的任何建议。
最好的问候,马顿
cxf - 使用 CXF DOSGI 从 RESTful 服务返回 JSON
我有一个简单的服务,它使用 JAX-RS 注释进行注释并包含@Produces("application/json")
注释。我在注册服务时设置了以下属性(我使用的是 DS,但这无关紧要):
当我运行我的应用程序时,我可以点击 URL,但我的浏览器返回:
我的 OSGi 控制台显示:
我阅读了文档并认为我可能需要注册一个 JSON 提供程序。在 May Activator 中,我添加了:
但这并没有什么不同。
如何解决“未找到响应类 MyClass 的消息正文编写器”。错误信息?