2013-06-19 71 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創建了上面的鉤子 希望它可以幫助你!