Service Builder に新しいメソッドを追加しました。
public IRRule ruleCreation()
throws SystemException, PortalException {
IRRule rule = new IRRuleImpl();
return rule;
}
メソッドはポートレット クラスから認識されます (エラーは表示されません)。
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;
そんなことがあるものか?この問題を解決するにはどうすればよいですか?? 過去に、サービス ビルダー (LocalServiceImpl クラス) に他の関数を問題なく追加しました。
助けてくれてありがとう、オリオール