首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在OSGI中使用JACORB

在OSGI中使用JACORB
EN

Stack Overflow用户
提问于 2010-03-03 17:57:58
回答 2查看 891关注 0票数 4

我正在尝试使用am OSGI-Bundle中的JACORB。我读到过一些人,他们在启动和运行它时遇到了很多麻烦。你们中有谁有将JaCORB包含到OSGi-Bundle中的经验吗?

谢谢莫里茨

EN

回答 2

Stack Overflow用户

发布于 2010-03-03 18:06:14

CORBA通常需要创建大量特定于类的代码,我怀疑JACORB是否会从捆绑包中以类安全的方式做到这一点(因为它无疑需要访问其他类才能实现)。

如果您确实需要这样做,那么添加一个:

代码语言:javascript
复制
DynamicImport-Package: *

将为JACORB提供对(导出的)包的完全访问权限。请注意,这意味着当JACORB绑定到特定版本的包时,它将不是动态的(即,它将在包的生命周期内永久连接自身)。

您可能希望研究一下OSGi远程服务;有许多不同的实现通过网络提供服务;例如,Eclipse ECFApache CXF

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

代码语言:javascript
复制
Bundle-ClassPath: .,jacorb.jar

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

票数 3
EN

Stack Overflow用户

发布于 2013-11-08 12:00:56

您是否尝试过使用系统片段。我们通过将Jacorb放在捆绑包和系统片段中来解决这个问题。这有点非正统,但它确实有效。

  1. 创建一个捆绑包(org.jacorb)并包装所有现有的jacorb。暴露这些包。这是为了让你可以在需要的时候对system.host类进行评估。
  2. 创建一个片段,其中的主机包是system.host。在这里也添加所有的jacorb jars。这就是说,当JVM创建ORB时,它可以成功地找到通常不会出现在类路径中的ORB类,除非您依赖于jacorb包。

瞧!现在,您的所有插件都不需要依赖于jacorb,您可以像处理Java系统属性一样使用jacorb。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2370178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档