0

拡張機能で作成されたメソッドを理想的に呼び出す liferay フックに新しいアクションがあります。ただし、実行時にアクションを実行すると、拡張機能で作成されたメソッドに対して例外 java.lang.ClassNotFoundException がスローされます。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"; 
    }
} 
4

1 に答える 1

0

以下のコードを試してください。

フック.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 の上記のフックを作成しました。

于 2013-06-20T07:31:03.870 に答える