liferay - Liferay 7:尝试激活捆绑 portlet 时出错
问题描述
我正在尝试将捆绑包安装到 Liferay 7 中。当我将 jar 上传到 App Manager 时,仅安装了模块,然后当我尝试激活时抛出异常:
2018-09-04 17:25:24.739 ERROR [http-nio-8080-exec-4][PortletServlet:112] javax.portlet.PortletException: org.osgi.framework.BundleException: Could not resolve module: com.ctliv.vportlet [998]_ Unresolved requirement: Import-Package: com.liferay.portal.kernel.exception; version="7.4.0"_ [Sanitized]
javax.portlet.PortletException: org.osgi.framework.BundleException: Could not resolve module: com.ctliv.vportlet [998]_ Unresolved requirement: Import-Package: com.liferay.portal.kernel.exception; version="7.4.0"_ [Sanitized]
at com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:207)
at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.callActionMethod(MVCPortlet.java:418)
at com.liferay.portal.kernel.portlet.LiferayPortlet.processAction(LiferayPortlet.java:97)
at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.processAction(MVCPortlet.java:260)
at com.liferay.marketplace.app.manager.web.internal.portlet.MarketplaceAppManagerPortlet.processAction(MarketplaceAppManagerPortlet.java:216)
at com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:77)
at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:50)
at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:108)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153)
at org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:62)
at org.eclipse.equinox.http.servlet.internal.context.DispatchTargets.doDispatch(DispatchTargets.java:118)
at org.eclipse.equinox.http.servlet.internal.servlet.RequestDispatcherAdaptor.include(RequestDispatcherAdaptor.java:48)
at com.liferay.portlet.internal.InvokerPortletImpl.invoke(InvokerPortletImpl.java:606)
at com.liferay.portlet.internal.InvokerPortletImpl.invokeAction(InvokerPortletImpl.java:652)
at com.liferay.portlet.internal.InvokerPortletImpl.processAction(InvokerPortletImpl.java:341)
at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet.processAction(MonitoringInvokerPortlet.java:208)
at com.liferay.portlet.internal.PortletContainerImpl._processAction(PortletContainerImpl.java:485)
at com.liferay.portlet.internal.PortletContainerImpl.lambda$processAction$0(PortletContainerImpl.java:144)
at com.liferay.portlet.internal.PortletContainerImpl._preserveGroupIds(PortletContainerImpl.java:390)
at com.liferay.portlet.internal.PortletContainerImpl.processAction(PortletContainerImpl.java:137)
...
Caused by: org.osgi.framework.BundleException: Could not resolve module: com.ctliv.vportlet [998]_ Unresolved requirement: Import-Package: com.liferay.portal.kernel.exception; version="7.4.0"_ [Sanitized]
at org.eclipse.osgi.container.Module.start(Module.java:429)
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:402)
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:421)
at com.liferay.marketplace.app.manager.web.internal.portlet.MarketplaceAppManagerPortlet.activateBundles(MarketplaceAppManagerPortlet.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:189)
... 150 more
我的 pom.xml 看起来像:
<import.package>
!com.google.gwt.*,
!elemental.events,
!com.vaadin.client.*,
com.vaadin*;resolution:=optional;version="[8.1,9)",
org.osgi.framework;version="[1.8,2)",
com.liferay.counter.kernel.service;version="1.0.1",
com.liferay.portal.kernel.exception;version="[7.0,8)",
com.liferay.portal.kernel.log;version="7.0.0",
com.liferay.portal.kernel.model;version="2.0.0",
com.liferay.portal.kernel.portlet;version="8.0.0",
com.liferay.portal.kernel.service;version="1.34.0",
com.liferay.portal.kernel.util; version="8.4.0",
javax.portlet*;version="[2.0,3)",
javax.sql,
javax.management,
org.xml.sax,
</import.package>
<export.package>
com.github.ctliv.vportlet.export;version="${project.version}",
com.liferay.portal.kernel.exception;version="[7.0,8)"
</export.package>
</properties>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.3.0</version>
<extensions>true</extensions>
<configuration>
<instructions>
<manifestLocation>META-INF</manifestLocation>
<Bundle-Name>${project.name}</Bundle-Name>
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Import-Package>${import.package}</Import-Package>
<Export-Package>${export.package}</Export-Package>
<Bundle-Activator>${bundle.activator}</Bundle-Activator>
<Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<Bundle-RequiredExecutionEnvironment>JavaSE-1.8</Bundle-RequiredExecutionEnvironment>
</instructions>
</configuration>
</plugin>
似乎我必须将 com.liferay.portal.kernel 依赖项包含到我的 jar 中?我包含在导出包中但没有工作
解决方案
我认为您不需要根据需要包含内核包导入
推荐阅读
- laravel - 如何将 Laravel 项目部署到共享托管服务器:500 内部服务器错误
- python - 为什么我在导入模块时收到 Pylance 错误,就好像模块没有被识别一样?
- java - 在 android 10 和 11 中,如何在使用范围存储访问框架时从 URI 获取真实文件路径
- batch-file - 将包含某些数字的 PDF 移动到包含相同数字的文件夹中的批处理
- javascript - 如何检测 Discord 中的内联回复?
- arrays - 比较 3 个数组
- php - 如何在 Wordpress 中手动显示即将发布和最近发布的帖子
- ruby-on-rails - Rails left_outer_joins 多个条件
- javascript - 本地(插图画家)上的图像高度相同,但加载时大小不同
- sql - 这个 oracle 查询中的 {0} 是什么意思“select ... from STAFFSV {0} order by SEQID”?