Liferay Service Builder无法识别功能

问题描述 投票:0回答:2

我在我的Service Builder上添加了一个新方法:

public IRRule ruleCreation()
throws SystemException, PortalException {
    IRRule rule = new IRRuleImpl();
    return rule;
}

从portlet类中识别该方法(未显示错误):

public class RulePortlet extends MVCPortlet{

public void addRule(ActionRequest request, ActionResponse response)
throws Exception {
    ThemeDisplay themeDisplay =
    (ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);

    IRRule rule = IRRuleLocalServiceUtil.ruleCreation(); // This is The Method!!!!


    rule.setCompanyId(themeDisplay.getCompanyId());
    rule.setGroupId(themeDisplay.getScopeGroupId());
    rule.setRuleName(ParamUtil.getString(request, "ruleName"));
    rule.setRuleDescription(ParamUtil.getString(request, "ruleDescription"));
    rule.setRuleFile(ParamUtil.getString(request, "ruleFile"));

    ArrayList<String> errors = new ArrayList<String>();
    if (RuleValidator.validateRule(rule, errors)) {
        IRRuleLocalServiceUtil.addRule(rule,
        themeDisplay.getUserId());
        SessionMessages.add(request, "product-saved-successfully");
    } else {
        SessionErrors.add(request, "fields-required");
    }
}
...

但是在测试这个函数的时候我有这个错误抛出控制台......

java.lang.NoSuchMethodError: com.ent.oriol.inputrules.service.IRRuleLocalServiceUtil.ruleCreation()Lcom/ent/oriol/inputrules/model/IRRule;

怎么可能?我应该怎么做才能解决这个问题?在过去,我将其他功能添加到服务构建器(本地服务Impl类)而没有麻烦!

谢谢你的帮助,Oriol

java tomcat liferay liferay-6
2个回答
1
投票

正如你评论重新启动有帮助,问题可能是一些旧的代码以某种方式缓存,可能是在运行的调试器进程中,在服务重建时没有获取由servicebuilder引起的类更改。

事后很难说出这一点 - 如果你可以重现这一点,那么了解情况会很有趣,例如: IDE,测试设置等。否则,我担心,你必须把它看作矩阵中的一个小故障。


-1
投票
 Goto service.xml--->select Overview--->In the right corner build services option is there--->click that

如果在service.xml中看到的任何更改只是按照上面的屏幕,我提到你将很容易纠正。在他的声明中,他提到了服务构建器中的一些更改,这就是我给出解决方案的原因

© www.soinside.com 2019 - 2024. All rights reserved.