我正在尝试从OSGI-Bundle使用JACORB。我读到有关人们的信息,他们在启动和运行时遇到很多麻烦。你们中的任何人有将JaCORB包含到OSGi-Bundle中的经验吗?

谢谢
莫里兹

最佳答案

CORBA通常需要创建许多特定于类的代码,而我怀疑JACORB是否会从捆绑包中以类安全的方式进行此操作(因为毫无疑问,它需要访问其他类才能实现)。

如果您确实需要这样做,请添加:

DynamicImport-Package: *


捆绑软件将使JACORB可以完全访问您(导出的)捆绑软件。请注意,这意味着当JACORB绑定到您的特定版本的软件包时,它将不是动态的(即它将在​​捆绑包的整个生命周期内永久地连接起来)。

您可能需要研究OSGi远程服务;有许多不同的实现方式可以通过网络提供服务;例如Eclipse ECFApache CXF

如果只需要通过OSGi调用客户端,则最好将JACORB的内部副本捆绑在捆绑包中(这样它将看到捆绑包的内容),然后使用以下命令设置捆绑包的类路径:

Bundle-ClassPath: .,jacorb.jar


这样,您的客户端将能够调出远程CORBA服务,但不能(轻松地)调入请求。还要注意,可能有很多单例资源(例如IIOR端口),这可能意味着您仅限于每个OSGi VM使用此技巧一次。

10-06 04:39