📄 portletwebapplicationloader.java
字号:
package org.gridsphere.portletcontainer.impl;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.gridsphere.portlet.service.spi.PortletServiceFactory;import org.gridsphere.portletcontainer.PortletDispatcher;import org.gridsphere.portletcontainer.PortletStatus;import org.gridsphere.services.core.persistence.PersistenceManagerService;import javax.portlet.PortletException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletContext;/** * The <code>PortletWebApplicationImpl</code> is an implementation of a <code>PortletWebApplication</code> that * represents a collection of portlets contained in a packaged WAR file. Currently * under development is the notion of dynamically managing portlet web applications. */public class PortletWebApplicationLoader { private Log log = LogFactory.getLog(PortletWebApplicationLoader.class); protected String webApplicationName = "Unknown portlet web application"; protected String webAppDescription = "Unknown portlet web application description"; protected PortletStatus status = PortletStatus.SUCCESS; protected String statusMessage = "Portlet web application loaded successfully"; protected PortletDispatcher portletDispatcher = null; /** * Constructs an instance of a PortletWebApplicationImpl from a supplied ui application name and corresponding * <code>ServletContext</code> * * @param webApplicationName the the web application name * @param context the <code>ServletContext</code> * @throws PortletException if an initialization exception occurs */ public PortletWebApplicationLoader(String webApplicationName, ServletContext context) throws PortletException { this.webApplicationName = webApplicationName; // get the servlet context for the coreportlets webapp String contextURIPath; if (webApplicationName.startsWith("/")) { contextURIPath = webApplicationName; this.webApplicationName = webApplicationName.substring(1); } else { contextURIPath = "/" + webApplicationName; } // Get the cross context servlet context ServletContext ctx = context.getContext(contextURIPath); //System.err.println("contextURIPath: " + contextURIPath); //System.err.println("contextName: " + ctx.getServletContextName()); //System.err.println("context path: " + ctx.getRealPath("")); if (ctx == null) { log.error(webApplicationName + ": Unable to get ServletContext for: " + contextURIPath); throw new PortletException(webApplicationName + ": Unable to get ServletContext for: " + contextURIPath); } log.debug("context path: " + ctx.getRealPath("")); this.webAppDescription = ctx.getServletContextName(); String servletName = "PortletServlet"; RequestDispatcher rd = ctx.getNamedDispatcher(servletName); if (rd == null) { String msg = "Unable to create a dispatcher for portlet: JSR Portlet Servlet\n"; msg += "Make sure the servletName: " + servletName + " is the servlet-name defined in web.xml"; throw new PortletException(msg); } portletDispatcher = new PortletDispatcherImpl(rd); } /** * Under development. A portlet web application can unregister itself from the application server */ public void destroy() { PortletServiceFactory.shutdownServices(webApplicationName); PersistenceManagerService pmservice = (PersistenceManagerService) PortletServiceFactory.createPortletService(PersistenceManagerService.class, true); pmservice.destroyPersistenceManagerRdbms(webApplicationName); } /** * Returns the portlet web application name * * @return the ui application name */ public String getWebApplicationName() { return webApplicationName; } /** * Returns the portlet web application description * * @return the portlet web application description */ public String getWebApplicationDescription() { return webAppDescription; } public void setWebApplicationStatus(PortletStatus status) { this.status = status; } public void setWebApplicationStatusMessage(String statusMessage) { this.statusMessage = statusMessage; } public PortletStatus getWebApplicationStatus() { return status; } public String getWebApplicationStatusMessage() { return statusMessage; } public PortletDispatcher getPortletDispatcher() { return portletDispatcher; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -