将Liferay 6.2升级到7 - Service Builder会抛出模型和类错误

时间:2018-03-28 13:13:13

标签: liferay liferay-7 liferay-6.2 liferay-service-builder

从Liferay 6.2升级到Liferay 7后,在使用Liferay升级工具解决重大更改然后转到构建服务后,会反复出现这3种类型的错误。为简洁起见,我只包含了一次。

我的感觉是,它无法解决以前用于占用BaseModel的基础自定义Generic并将其替换为问号

[javac] Compiling 116 source files to C:\LiferayDXP\advglobalweb\v6.2\plugins\portlets\e-Recruit-portlet\docroot\WEB-INF\service-classes
[javac] C:\LiferayDXP\advglobalweb\v6.2\plugins\portlets\e-Recruit-portlet\docroot\WEB-INF\service\com\advantage\erecruit\model\CandidateApplicationClp.java:1301: error: cannot find symbol
[javac]     public BaseModel<?> getCandidateApplicationRemoteModel() {
[javac]            ^
[javac]   symbol:   class BaseModel
[javac]   location: class CandidateApplicationClp


[javac] C:\LiferayDXP\advglobalweb\v6.2\plugins\portlets\e-Recruit-portlet\docroot\WEB-INF\service\com\advantage\erecruit\model\PositionWrapper.java:35: error: PositionWrapper is not abstract and does not override abstract method isFinderCacheEnabled() in BaseModel
[javac] public class PositionWrapper implements Position, ModelWrapper<Position> {
[javac]        ^


[javac] C:\LiferayDXP\advglobalweb\v6.2\plugins\portlets\e-Recruit-portlet\docroot\WEB-INF\service\com\advantage\erecruit\model\CandidateApplicationClp.java:449: error: incompatible types: getClass cannot be converted to Class<?>
[javac]                 Class<?> clazz = _candidateApplicationRemoteModel.getClass();

1 个答案:

答案 0 :(得分:1)

正如@dnebing所说。有些课程不应该在那里。

第一个和最后一个错误是指服务构建器OSGi模块中不再使用的CPL类。

第二个错误可能是由ModelWrapper造成的,他再次不应该在那里。它被ServiceWrapper取代。

  • 我建议您使用刀片工具或maven原型为服务构建器模块创建一个新项目。
  • 然后复制服务XML文件。
  • 运行构建服务。
  • 放入您的实现类。当您执行升级过程时,它们应该已经与新API对齐。
  • 再次构建服务

现在应该有效了