我正在尝试在Websphere 6.1服务器上嵌入Equinox框架,但在尝试了几乎所有我认为我需要一些帮助之后。
主要问题似乎是我无法在我的项目中导入任何我想要的框架(较新的 Equinox、Apache Felix 等)。当我这样做时,我得到很多异常告诉我加载的类不是我想要的类(ClassNotFoundException、MethodNotFoundException 等)。
所以我发现我需要使用Websphere 附带的某个版本( org.eclipse.osgi_3.2.1.R32x_v20060919.jar )。问题:我不知道如何获得BundleContext。
我尝试过的事情:
使用
ServiceLoader
类:FrameworkFactory ff = ServiceLoader.load(FrameworkFactory.class);
结果:我需要使用没有 ServiceLoader 类的 Java 1.5。
使用
EclipseStarter
类启动框架:BundleContext context = EclipseStarter.startup(new String[]{},null);
结果:抛出一个异常,告知 Eclipse 已经在运行。
用于
EclipseStarter
获取系统捆绑上下文:BundleContext context = EclipseStarter.getSystemBundleContext();
结果:该方法未在此版本上实现。
使用
EquinoxFactory
类:Framework fw = new EquinoxFactory().newFramework(...);
结果:我的 Equinox 版本没有 EquinoxFactory 类实现。
我不知道还能尝试什么。我找不到太多关于这个版本的文档,而且我找到的几乎所有东西都是关于使用控制台的,而不是嵌入框架的。
如果我做对了,我们将避免仅仅为了创建 PDF 而启动新的 JVM(我们正在尝试使用多个版本的 Apache FOP)
谢谢。