如何从 servlet 调用通用 Portlet 方法?

How to call Generic Portlet methods from servlet?

我已经创建了一个 portlet,并且我的所有业务逻辑都可以在 servlet 中执行。我需要在 servlet 中获取 liferay 登录用户详细信息。所以我创建了一个 class 来扩展 GenericPortlet。现在我的问题是如何调用 class 我需要执行 GenericPorlet 未实现的方法。我的代码如下,

public class ActionProcess extends GenericPortlet {

    public void init() throws PortletException{
        super.init();
    }

    public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
             User user = (User) request.getAttribute(WebKeys.USER);
             ThemeDisplay td  =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
             User urs = td.getUser();
             System.out.println("doView "+ urs);
             System.out.println("doView "+ user);
    }
}

现在我需要将 doView() 和 return 的值调用到 servlet。我该怎么做,我的 servlet 代码是。

@WebServlet("/demoClass")
public class demoClass extends HttpServlet {
        private static final long serialVersionUID = 1L;

    public demoClass() {
        super();
        // TODO Auto-generated constructor stub
    }
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                // TODO Auto-generated method stub
                 doPost(request, response); // 
        }
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//Here I am performing the business logic....
//How do I call the ActionProcess class here, I need to get the User name which is return by diView() method
}
}

有什么建议吗?

你不能,我的回答与我对你的回答非常相似。

调用 portlet 的生命周期方法是 框架(门户)的职责。 不是你的。

您需要重新考虑您的问题并提出不同的架构。或者将您的问题告诉我们,让我们提出与您目前正在寻求的解决方案不同的解决方案。

与那个答案不同,我假设在这种情况下您在同一个 web 应用程序中(portlet 和 servlet 部署在同一个 webapp 中)。然而,就像在 中一样,Portlet 的请求通过门户进行路由,而 Servlet 的请求则不是。您将没有可用的数据。