如何从servlet调用Generic Portlet方法?

时间:2015-02-16 07:24:05

标签: java servlets liferay liferay-6 portlet

我已经创建了一个portlet,并且我的所有业务逻辑都在servlet中执行。我需要在servlet中获取liferay登录用户详细信息。所以我创建了一个扩展GenericPortlet的类。现在我的问题是如何调用该类我需要执行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()并将值返回给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
}
}

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

你不能,我的答案与我对very similar question的回答非常相似。

框架的(门户网站)业务来调用portlet的生命周期方法。 你的。

您需要重新考虑您的问题并提出不同的架构。或者向我们提出建议与您目前正在追求的解决方案不同的解决方案。

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