Liferay 7中没有基本资源?
我已经将portlet从Liferay 6.2转换为Liferay 7的捆绑包。当我部署它时,它无法加载,因为缺少一个资源:Liferay 7中没有基本资源?,liferay,osgi,liferay-dxp,Liferay,Osgi,Liferay Dxp,我已经将portlet从Liferay 6.2转换为Liferay 7的捆绑包。当我部署它时,它无法加载,因为缺少一个资源: $ blade sh diag 1084 diag 1084 org.mycompany.caasd.portal-ldap-sync [1084] Unresolved requirement: Import-Package: com.liferay.portal.kernel.service; version="[1.20.0,2.0.0)" 当我使用Feli
$ blade sh diag 1084
diag 1084
org.mycompany.caasd.portal-ldap-sync [1084]
Unresolved requirement: Import-Package: com.liferay.portal.kernel.service;
version="[1.20.0,2.0.0)"
当我使用Felix Gogo shell查看可用的内核包时,我没有看到任何内核包。这是一个我应该安装、自己安装、包含在我的捆绑包中的捆绑包,还是我没有正确地考虑这个问题?CE GA4的
com.liferay.portal.kernel
版本是2.32.1。因此,如果您正在为CEGA4开发一个gradle项目,您应该在项目的build.gradle
中配置依赖项,如下所示:
dependencies {
compileOnly group: "com.liferay.portal", name: "com.liferay.portal.kernel", version: "2.32.1"
}
您可以通过查看portal kernel.jar
文件的MANIFEST/MANIFEST.MF
或者如果您的版本有liferay src,则可以在其自己的模块build.gradle
文件中找到它。在我的tomcat包中,portal kernel.jar
如果在tomcat/lib/ext
中
除非我误解了你的问题,否则你会得到你想要的
有关更多信息,请参阅文档当您构建捆绑包时,bnd将
- 检查类路径并为您检测包版本
- 使用您在导入包中手动提供的任何版本
com.liferay.portal.kernel.service
包的版本是1.20.0
。因此,它生成了“等于或大于当前版本但低于下一个主要版本”的范围,在您的情况下,该范围表示为[1.20.0,2.0.0)
。这可能是因为您在CLAPATH或BEHAW上使用了旧jar,因为您使用了错误的导入包
语句
只要您不使用在较新版本中添加/更改的功能,这可能可以正常编译。但在运行时,实际的软件包版本更高(如2.32.1
),因此它不满足您的要求。由于OSGi运行时无法解决您的捆绑包要求,因此捆绑包保留在“istalled”中国家
要解决此问题,您有两个选项:
- 在旧版本的Liferay上安装您的捆绑包(其中
包介于com.Liferay.portal.kernel.service
和1.20.0
之间)2.0.0
- 重新编译包,确保类路径仅包含那些jar,其中
包的版本将生成运行时包版本适合的版本范围com.liferay.portal.kernel.service