当前位置: 首页 > 知识库问答 >
问题:

运行多个Equinox OSGi框架

翟博雅
2023-03-14

我试图在一个普通的Java应用程序中运行多个Equinox实例。

目前,我正在我的应用程序中启动Equinox的一个实例,使用:

EclipseStarter.startup(new String[]{"-console", "-dev", "bin"}, null);

然而,对于一个需要大量捆绑包启动、停止和更新的新用例来说,这种方法已经不够了。

相反,我希望能够同时持有两个安装了不同bundle的框架,并在必要时在它们之间进行交换。在某些情况下,我仍然需要停止并重新启动一些捆绑包,但这样的方法可以解决大部分问题。

你知道我怎么能建立这样的方法吗???

非常感谢您的帮助!

塞巴斯蒂安

共有2个答案

谢诚
2023-03-14

您可以为每个静态实例使用不同的ClassLoader来创建多个静态实例。创建多个URLClassLoader,路径设置为JarFile,其中包含Eclipse Starter类。使用ClassLoader的loadClass()方法获取对Eclipse Starter类对象的引用。

刘才俊
2023-03-14

您不应该使用Eclipse Starter。使用OSGi启动API创建框架的多个实例

 类似资料:
  • 问题内容: 如何在一台机器上运行多个JVM?您如何在其他JVM中调用方法? 问题答案: 如何在一台机器上运行多个JVM? 只需启动多个进程即可。 您如何在其他JVM中调用方法? 使用任何类型的RPC框架(RMI,EJB,Web服务等)。

  • 问题内容: 我正在使用在3个不同的docker上运行的应用程序: 第一个是可通过REST API调用的服务器HTTP 第二个是rabbitmq 第三个是工人 整个应用程序使用 真的很简单:) 我想使其具有可伸缩性,并且独立于其他应用程序运行整个应用程序的多个实例(3个docker映像),然后放置一个负载平衡器,例如它将重定向到其中一个应用程序。 我看到我可以使用它,但是问题是可以缩放容器,但是我真

  • 可以运行多个WorkerMan实例,一般只要启动文件不同并且监听端口不同即可。

  • 我现在不知道如何写一个合适的方法来测试这种行为。请不要投反对票... 我现在有一个java类负责处理和向多个数据库添加数据。每个数据库保存相同的数据,但处理方式不同(例如,使用不同的插值速率进行插值)。 所以我运行程序(点击绿色矩形),修改参数(插值率)并运行程序。所以我有两个进程运行(因为大约。这就是为什么我不想冒任何中断的风险,担心数据库被搞砸了)。 我的问题是:这个修改是否适用于已经运行的进

  • 我正在使用loadrunner控制器11和load generator,容量为400个用户。 当在控制器中执行脚本时,我看到对于每个脚本,相应的mmdrv在任务管理器中运行,也就是说,如果有10个脚本在执行,则有10个mmdrv在运行。 协议:Web HTTP/HTML协议。

  • 我正在从NPM迁移到Thread,我希望并行运行脚本,例如: 它在纱线中的等价物是什么? 我发现它的等价物是分别运行每一个: 但是我不能并行运行脚本。 如何使用多个脚本