我正在开发一个Eclipse e4 RCP应用程序,并希望使用Jersey REST客户端调用RESTful Web服务,但是当我将依赖项添加到插件MANIFEST.MF
文件中时,应用程序无法正确启动。
我要添加的依赖项是javax.ws.rs
、org.glassfish.jersey.core.jersey-client
和org.glassfish.jersey.media.jersey-media-json-jackson
。这三个都已添加到从Eclipse Orbit下载的目标定义文件中(因此它们已经包含必要的OSGI信息(和插件MANIFEST.MF
文件。
该项目由两个插件模块组成,一个指定两个插件的功能模块,一个指定功能的产品模块和一个目标定义模块。第一个插件是com.xxx.application
的,是主要应用程序。第二个插件com.xxx.demo
,为主应用程序提供一部分。这是我尝试添加依赖项的第二个插件。
当我尝试通过产品文件启动应用程序时,返回以下错误消息...
!ENTRY org.eclipse.e4.ui.workbench 4 0 2018-05-02 14:52:36.033
!MESSAGE Unable to retrieve the bundle from the URI: bundleclass://com.xxx.demo/com.xxx.demo.DemoPart
将三个依赖项中的任何一个添加到com.xxx.demo
插件的MANIFEST.MF
文件中时,似乎会出现问题,如果我从MANIFEST.MF
文件中删除依赖项,它会正确启动。我没有在调用 Web 服务的插件中包含任何 JAX-RS 代码,所以我知道当我将依赖项添加到清单文件时会触发问题。
在设置依赖项时,我是否遗漏了一些阻止应用程序启动的内容,或者是否有更好的方法将依赖项添加到插件中?
清单。插件的MF通常只需要列出它直接依赖的其他插件。
使用基于功能的 .product 文件时.xml产品中的文件必须列出 RCP 中所需的每个插件。如果未列出某些内容,则不会包含该内容。