我创建了一个新的liferay osgi模块。我的控制器具有以下标签:
@Component(
immediate = true,
property = {
"com.liferay.portlet.display-category=Bla Modules",
"com.liferay.portlet.instanceable=true",
"javax.portlet.display-name=EventCalendar",
"javax.portlet.init-param.template-path=/",
"javax.portlet.expiration-cache=0",
"com.liferay.portlet.footer-portlet-javascript=fullcalendar_year.js,/js/custom/main.js",
"com.liferay.portlet.header-portlet-css=/css/fullcalendar_year.css,/css/fullcalendar.css",
"javax.portlet.init-param.view-template=/view.jsp",
"javax.portlet.resource-bundle=content.Language",
"javax.portlet.security-role-ref=administrator,power-user,user"
},
service = Portlet.class
Run Code Online (Sandbox Code Playgroud)
但是财产
com.liferay.portlet.footer-portlet-javascript
不加载所有js文件,仅在调用一个文件的情况下才加载文件,如果不止一个,则不加载任何文件。
这是一个错误还是我做错了什么?
我得到这个Gradle错误:
> Task :jar
[Class my.MyPortlet is not assignable to specified service com.liferay.portal.kernel.model.Portlet]
Run Code Online (Sandbox Code Playgroud)
...这个极简主义的Liferay 7 portlet(官方文档的简化):
package my;
import com.liferay.portal.kernel.model.Portlet;
import com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet;
import org.osgi.service.component.annotations.Component;
@Component(
service = Portlet.class
)
public class MyPortlet extends MVCPortlet {
}
Run Code Online (Sandbox Code Playgroud)
在调试模式下运行Gradle并没有给我更多线索:
[aQute.bnd.osgi.Builder] parseClassFile(): path=javax.portlet.PortletRequest resource=:/home/nico/.gradle/caches/modules-2/files-2.1/javax.portlet/portlet-api/2.0/1cd72f2a37fcf8ab9893a9468d7ba71c85fe2653/portlet-api-2.0.jar(javax/portlet/PortletRequest.class):
[aQute.bnd.osgi.Builder] end
[aQute.bnd.osgi.Builder] begin com.liferay.ant.bnd.npm.NpmAnalyzerPlugin@39735dcf
[aQute.bnd.osgi.Builder] end
[aQute.bnd.osgi.Builder] begin com.liferay.ant.bnd.resource.bundle.ResourceBundleLoaderAnalyzerPlugin@4e811a19
[aQute.bnd.osgi.Builder] end
[aQute.bnd.osgi.Builder] parseClassFile(): path=my/MyPortlet.class resource=/home/nico/my/build/classes/java/main/my/MyPortlet.class
[aQute.bnd.osgi.Builder] begin com.liferay.ant.bnd.sass.SassAnalyzerPlugin@526cd630
[aQute.bnd.osgi.Builder] end
[aQute.bnd.osgi.Builder] begin com.liferay.ant.bnd.service.ServiceAnalyzerPlugin@a73dc4
[aQute.bnd.osgi.Builder] end
[aQute.bnd.osgi.Builder] begin com.liferay.ant.bnd.social.SocialAnalyzerPlugin@2399853a
[aQute.bnd.osgi.Builder] end
[aQute.bnd.osgi.Builder] begin aQute.lib.spring.SpringComponent@650e1282
[aQute.bnd.osgi.Builder] end
[aQute.bnd.osgi.Builder] …Run Code Online (Sandbox Code Playgroud) 我正在从事从 Liferay 6.2 到 Liferay 7.1 的代码迁移项目。在 Liferay 6.2 中有一个BaseBackgroundTaskExecutor类,它包含一个方法setSerial(boolean serial)。但是在 Liferay 7.1 中,该方法消失了,我找不到任何替代品。
这里有人熟悉我的问题或 Liferay 并且可以为我提供一些指导吗?
问候,迈克尔
每当我在 Eclipse 中部署 Liferay portlet 的 war 文件时,我都会收到以下错误。任何人都可以帮助我知道为什么会发生这种情况以及如何解决它。
java.lang.LinkageError: loader constraint violation: when resolving overridden method "com.liferay.portal.spring.extender.internal.context.ModuleBeanFactoryPostProcessor.postProcessBeanFactory(Lorg/springframework/beans/factory/config/ConfigurableListableBeanFactory;)V" the class loader (instance of org/eclipse/osgi/internal/loader/EquinoxClassLoader) of the current class, com/liferay/portal/spring/extender/internal/context/ModuleBeanFactoryPostProcessor, and its superclass loader (instance of org/apache/catalina/loader/WebappClassLoader), have different Class objects for the type org/springframework/beans/factory/config/ConfigurableListableBeanFactory used in the signature
at com.liferay.portal.spring.extender.internal.context.ModuleApplicationContextRegistrator._createApplicationContext(ModuleApplicationContextRegistrator.java:138)
at com.liferay.portal.spring.extender.internal.context.ModuleApplicationContextRegistrator.start(ModuleApplicationContextRegistrator.java:60)
at sun.reflect.GeneratedMethodAccessor756.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.felix.dm.InvocationUtil.invokeMethod(InvocationUtil.java:111)
at org.apache.felix.dm.InvocationUtil.invokeCallbackMethod(InvocationUtil.java:66)
at org.apache.felix.dm.impl.ComponentImpl.invokeCallbackMethod(ComponentImpl.java:769)
at org.apache.felix.dm.impl.ComponentImpl.invoke(ComponentImpl.java:760)
at org.apache.felix.dm.impl.ComponentImpl.bindService(ComponentImpl.java:705)
at org.apache.felix.dm.impl.ComponentImpl.access$400(ComponentImpl.java:54)
at org.apache.felix.dm.impl.ComponentImpl$7.run(ComponentImpl.java:202)
at org.apache.felix.dm.impl.SerialExecutor.runTask(SerialExecutor.java:137)
at org.apache.felix.dm.impl.SerialExecutor.runTasks(SerialExecutor.java:119)
at org.apache.felix.dm.impl.SerialExecutor.execute(SerialExecutor.java:85)
at org.apache.felix.dm.impl.ComponentImpl.calculateStateChanges(ComponentImpl.java:252) …Run Code Online (Sandbox Code Playgroud)