【发布时间】:2018-09-29 09:16:05
【问题描述】:
当我在自定义 portlet 的 render 方法中写下一行时,它会引发上述异常。
DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(JournalArticle.class);
我也尝试过使用以下方法:
DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(JournalArticle.class, PortalClassLoaderUtil.getClassLoader());
我还在build.gradle 文件中添加了以下依赖项
compileOnly group: "com.liferay", name: "com.liferay.journal.api", version: "2.2.2"
请帮我解决这个错误。
堆栈跟踪如下。
调用渲染方法.....
06:42:56,450 ERROR [http-nio-8080-exec-8][DynamicQueryFactoryImpl:103] Unable find model com.liferay.journal.model.impl.JournalArticleImpl
java.lang.ClassNotFoundException: com.liferay.journal.model.impl.JournalArticleImpl
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1308)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1142)
【问题讨论】:
-
由于 DXP 期刊文章是单独部署的,不再在门户服务中,因此您必须充分导入它们.. 接口在 api 包中,实现在另一个包中..您必须同时导入 dem ...因为在运行时需要实现,您可能必须直接在 BND 文件中声明它
-
.. 总结一下:portalclassloader 不会这样做.. 因为它们不再在内核中了