2013-06-19 69 views
0

我有一个新的行动在liferay挂钩,理想情况下将调用在扩展中创建的方法。但是在执行动作时的运行时,它会为在扩展中创建的方法抛出异常 java.lang.ClassNotFoundException 。 有没有人在liferay hook中创建类似的动作?如果是这样,遇到这个问题的解决方案是什么?Liferay挂钩调用扩展方法

这里是我的代码:

public class ExampleStrutsAction extends BaseStrutsAction { 
    public String execute(HttpServletRequest request, HttpServletResponse response) throws Exception { 
     String name = ParamUtil.get(request, "name", "World"); 
     ThemeDisplay themeDisplay= (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); 
     BSCDynamicDataListLocalServiceUtil.cloneDynamicDataListPageInSuborganization(the‌​meDisplay, name); 
     return "/portal/sample.jsp"; 
    } 
} 
+1

发布您的代码.. –

+0

我的操作非常基本,只是试图在我的扩展中调用该方法,并且由于ClassNotFound异常而导致该操作失败: –

+0

您能否请您展示您的非常基本的方法。其不可能回答没有看到该.. –

回答

0

尝试下面的代码,

hook.xml

<hook> 
    <portal-properties>portal.properties</portal-properties> 
    <language-properties> 
     content/Language.properties 
    </language-properties> 
    <custom-jsp-dir>/META-INF/custom_jsps</custom-jsp-dir> 
    <struts-action> 
     <struts-action-path>/my_account/edit_user</struts-action-path> 
     <struts-action-impl>com.test.hook.action.EditUserAction</struts-action-impl> 
    </struts-action> 
    <struts-action> 
     <struts-action-path>/users_admin/edit_user</struts-action-path> 
     <struts-action-impl>com.test.hook.action.EditUserAction</struts-action-impl> 
    </struts-action> 

</hook> 

EditUserAction类

public class EditUserAction extends BaseStrutsPortletAction 
{ 
    @Override 
    public void processAction(final StrutsPortletAction originalStrutsPortletAction, final PortletConfig portletConfig, 
      final ActionRequest actionRequest, final ActionResponse actionResponse) throws Exception 
    { 
     // add your custom code 
     originalStrutsPortletAction.processAction(portletConfig, actionRequest, actionResponse); 
    } 

    @Override 
    public String render(final StrutsPortletAction originalStrutsPortletAction, final PortletConfig portletConfig, final RenderRequest renderRequest, 
      final RenderResponse renderResponse) throws Exception 
    { 
     //add your custom code 
     return originalStrutsPortletAction.render(portletConfig, renderRequest, renderResponse); 
    } 

}

我在控制面板中为EditUserAction创建了上面的钩子 希望它可以帮助你!