List of usage examples for javax.servlet Servlet init
public void init(ServletConfig config) throws ServletException;
From source file:org.jclouds.demo.tweetstore.config.SpringServletConfig.java
private void injectServletConfig(Servlet servlet) { LOGGER.trace("About to inject servlet config '%s'", servletConfig); try {// w w w. j a v a 2 s . co m servlet.init(checkNotNull(servletConfig)); } catch (ServletException exception) { throw new BeanCreationException("Unable to instantiate " + servlet, exception); } LOGGER.trace("Successfully injected servlet config."); }
From source file:com.github.jrialland.ajpclient.AbstractTomcatTest.java
/** * binds a servlet on the tomcat instance. the 'mapping' has the same format * that the 'servlet-mapping' parameter in web.xml. the path of the servlet * will be relative to //* ww w .j a v a 2s .c o m*/ * * {@link Servlet#init(javax.servlet.ServletConfig)} is called with a mock * object as parameter. * * @param mapping * @param servlet */ protected void addServlet(final String mapping, final Servlet servlet) { final MockServletContext servletContext = new MockServletContext("/"); final MockServletConfig config = new MockServletConfig(servletContext, servlet.toString()); try { servlet.init(config); } catch (final Exception e) { throw new IllegalStateException(e); } servlets.put(mapping, servlet); }
From source file:net.lightbody.bmp.proxy.jetty.jetty.servlet.ServletHolder.java
private void initServlet(Servlet servlet, ServletConfig config) throws ServletException { Principal user = null;//from ww w . j a va2s.c o m try { // Handle run as if (_runAs != null && _realm != null) user = _realm.pushRole(null, _runAs); servlet.init(config); } finally { // pop run-as role if (_runAs != null && _realm != null && user != null) _realm.popRole(user); } }
From source file:org.ireland.jnetty.dispatch.servlet.ServletConfigImpl.java
private Servlet createServletAndInit() throws ServletException { Class<? extends Servlet> servletClass = getServletClass(); Servlet servlet; if (servletClass == null) throw new ServletException("Null servlet class for " + _servletName); try {/* w ww .ja va 2 s. co m*/ servlet = servletClass.newInstance(); } catch (Exception e) { throw new ServletException(e); } // ?Servlet configureServlet(servlet); //? servlet.init(this); if (debug) log.debug("Servlet[" + _servletName + "] instantiated and inited"); return servlet; }
From source file:org.apache.catalina.core.StandardWrapper.java
/** * Load and initialize an instance of this servlet, if there is not already * at least one initialized instance. This can be used, for example, to * load servlets that are marked in the deployment descriptor to be loaded * at server startup time.//from w w w .ja va 2s . c om */ public synchronized Servlet loadServlet() throws ServletException { // Nothing to do if we already have an instance or an instance pool if (!singleThreadModel && (instance != null)) return instance; PrintStream out = System.out; if (swallowOutput) { SystemLogHandler.startCapture(); } Servlet servlet; try { long t1 = System.currentTimeMillis(); // If this "servlet" is really a JSP file, get the right class. // HOLD YOUR NOSE - this is a kludge that avoids having to do special // case Catalina-specific code in Jasper - it also requires that the // servlet path be replaced by the <jsp-file> element content in // order to be completely effective String actualClass = servletClass; if ((actualClass == null) && (jspFile != null)) { Wrapper jspWrapper = (Wrapper) ((Context) getParent()).findChild(Constants.JSP_SERVLET_NAME); if (jspWrapper != null) actualClass = jspWrapper.getServletClass(); } // Complain if no servlet class has been specified if (actualClass == null) { unavailable(null); throw new ServletException(sm.getString("standardWrapper.notClass", getName())); } // Acquire an instance of the class loader to be used Loader loader = getLoader(); if (loader == null) { unavailable(null); throw new ServletException(sm.getString("standardWrapper.missingLoader", getName())); } ClassLoader classLoader = loader.getClassLoader(); // Special case class loader for a container provided servlet // if (isContainerProvidedServlet(actualClass) && !((Context) getParent()).getPrivileged()) { // If it is a priviledged context - using its own // class loader will work, since it's a child of the container // loader classLoader = this.getClass().getClassLoader(); } // Load the specified servlet class from the appropriate class loader Class classClass = null; try { if (System.getSecurityManager() != null) { final ClassLoader fclassLoader = classLoader; final String factualClass = actualClass; try { classClass = (Class) AccessController.doPrivileged(new PrivilegedExceptionAction() { public Object run() throws Exception { if (fclassLoader != null) { return fclassLoader.loadClass(factualClass); } else { return Class.forName(factualClass); } } }); } catch (PrivilegedActionException pax) { Exception ex = pax.getException(); if (ex instanceof ClassNotFoundException) { throw (ClassNotFoundException) ex; } else { getServletContext().log("Error loading " + fclassLoader + " " + factualClass, ex); } } } else { if (classLoader != null) { classClass = classLoader.loadClass(actualClass); } else { classClass = Class.forName(actualClass); } } } catch (ClassNotFoundException e) { unavailable(null); getServletContext().log("Error loading " + classLoader + " " + actualClass, e); throw new ServletException(sm.getString("standardWrapper.missingClass", actualClass), e); } if (classClass == null) { unavailable(null); throw new ServletException(sm.getString("standardWrapper.missingClass", actualClass)); } // Instantiate and initialize an instance of the servlet class itself try { servlet = (Servlet) classClass.newInstance(); } catch (ClassCastException e) { unavailable(null); // Restore the context ClassLoader throw new ServletException(sm.getString("standardWrapper.notServlet", actualClass), e); } catch (Throwable e) { unavailable(null); // Restore the context ClassLoader throw new ServletException(sm.getString("standardWrapper.instantiate", actualClass), e); } // Check if loading the servlet in this web application should be // allowed if (!isServletAllowed(servlet)) { throw new SecurityException(sm.getString("standardWrapper.privilegedServlet", actualClass)); } // Special handling for ContainerServlet instances if ((servlet instanceof ContainerServlet) && (isContainerProvidedServlet(actualClass) || ((Context) getParent()).getPrivileged())) { ((ContainerServlet) servlet).setWrapper(this); } classLoadTime = (int) (System.currentTimeMillis() - t1); // Call the initialization method of this servlet try { instanceSupport.fireInstanceEvent(InstanceEvent.BEFORE_INIT_EVENT, servlet); if (System.getSecurityManager() != null) { Class[] classType = new Class[] { ServletConfig.class }; Object[] args = new Object[] { ((ServletConfig) facade) }; SecurityUtil.doAsPrivilege("init", servlet, classType, args); } else { servlet.init(facade); } // Invoke jspInit on JSP pages if ((loadOnStartup >= 0) && (jspFile != null)) { // Invoking jspInit DummyRequest req = new DummyRequest(); req.setServletPath(jspFile); req.setQueryString("jsp_precompile=true"); DummyResponse res = new DummyResponse(); if (System.getSecurityManager() != null) { Class[] classType = new Class[] { ServletRequest.class, ServletResponse.class }; Object[] args = new Object[] { req, res }; SecurityUtil.doAsPrivilege("service", servlet, classType, args); } else { servlet.service(req, res); } } instanceSupport.fireInstanceEvent(InstanceEvent.AFTER_INIT_EVENT, servlet); } catch (UnavailableException f) { instanceSupport.fireInstanceEvent(InstanceEvent.AFTER_INIT_EVENT, servlet, f); unavailable(f); throw f; } catch (ServletException f) { instanceSupport.fireInstanceEvent(InstanceEvent.AFTER_INIT_EVENT, servlet, f); // If the servlet wanted to be unavailable it would have // said so, so do not call unavailable(null). throw f; } catch (Throwable f) { getServletContext().log("StandardWrapper.Throwable", f); instanceSupport.fireInstanceEvent(InstanceEvent.AFTER_INIT_EVENT, servlet, f); // If the servlet wanted to be unavailable it would have // said so, so do not call unavailable(null). throw new ServletException(sm.getString("standardWrapper.initException", getName()), f); } // Register our newly initialized instance singleThreadModel = servlet instanceof SingleThreadModel; if (singleThreadModel) { if (instancePool == null) instancePool = new Stack(); } fireContainerEvent("load", this); loadTime = System.currentTimeMillis() - t1; } finally { if (swallowOutput) { String log = SystemLogHandler.stopCapture(); if (log != null && log.length() > 0) { if (getServletContext() != null) { getServletContext().log(log); } else { out.println(log); } } } } return servlet; }
From source file:org.apache.sling.servlets.resolver.internal.SlingServletResolver.java
/** * Returns the internal default servlet which is called in case no other * servlet applies for handling a request. This servlet should really only * be used if the default servlets have not been registered (yet). *//* www . j a v a 2 s .c o m*/ private Servlet getDefaultServlet() { if (defaultServlet == null) { try { Servlet servlet = new DefaultServlet(); servlet.init(new SlingServletConfig(servletContext, null, "Apache Sling Core Default Servlet")); defaultServlet = servlet; } catch (final ServletException se) { LOGGER.error("Failed to initialize default servlet", se); } } return defaultServlet; }
From source file:org.apache.sling.servlets.resolver.internal.SlingServletResolver.java
/** * Returns the default error handler servlet, which is called in case there * is no other - better matching - servlet registered to handle an error or * exception.//from w w w. j av a 2s . c o m * <p> * The default error handler servlet is registered for the resource type * "sling/servlet/errorhandler" and method "default". This may be * overwritten by applications globally or according to the resource type * hierarchy of the resource. * <p> * If no default error handler servlet can be found an adhoc error handler * is used as a final fallback. */ private Servlet getDefaultErrorServlet(final SlingHttpServletRequest request, final Resource resource, final ResourceResolver resolver) { // find a default error handler according to the resource type // tree of the given resource final ResourceCollector locationUtil = new ResourceCollector( ServletResolverConstants.DEFAULT_ERROR_HANDLER_NAME, ServletResolverConstants.ERROR_HANDLER_PATH, resource, this.executionPaths); final Servlet servlet = getServletInternal(locationUtil, request, resolver); if (servlet != null) { return servlet; } // if no registered default error handler could be found use // the DefaultErrorHandlerServlet as an ad-hoc fallback if (fallbackErrorServlet == null) { // fall back to an adhoc instance of the DefaultErrorHandlerServlet // if the actual service is not registered (yet ?) try { final Servlet defaultServlet = new DefaultErrorHandlerServlet(); defaultServlet.init(new SlingServletConfig(servletContext, null, "Sling (Ad Hoc) Default Error Handler Servlet")); fallbackErrorServlet = defaultServlet; } catch (ServletException se) { LOGGER.error("Failed to initialize error servlet", se); } } return fallbackErrorServlet; }
From source file:org.apache.sling.servlets.resolver.internal.SlingServletResolver.java
private boolean createServlet(final ServiceReference reference) { // check for a name, this is required final String name = getName(reference); if (name == null) { LOGGER.error("bindServlet: Cannot register servlet {} without a servlet name", reference); return false; }/*from w w w . ja v a 2 s . co m*/ // check for Sling properties in the service registration ServletResourceProvider provider = servletResourceProviderFactory.create(reference); if (provider == null) { // this is expected if the servlet is not destined for Sling return false; } // only now try to access the servlet service, this may still fail Servlet servlet = null; try { servlet = (Servlet) context.locateService(REF_SERVLET, reference); } catch (Throwable t) { LOGGER.warn("bindServlet: Failed getting the service for reference " + reference, t); } if (servlet == null) { LOGGER.error("bindServlet: Servlet service not available from reference {}", reference); return false; } // assign the servlet to the provider provider.setServlet(servlet); // initialize now try { servlet.init(new SlingServletConfig(servletContext, reference, name)); LOGGER.debug("bindServlet: Servlet {} added", name); } catch (ServletException ce) { LOGGER.error("bindServlet: Component " + name + " failed to initialize", ce); return false; } catch (Throwable t) { LOGGER.error("bindServlet: Unexpected problem initializing component " + name, t); return false; } final List<ServiceRegistration> regs = new ArrayList<ServiceRegistration>(); for (final String root : provider.getServletPaths()) { final ServiceRegistration reg = context.getBundleContext().registerService( ResourceProvider.class.getName(), provider, createServiceProperties(reference, provider, root)); regs.add(reg); } LOGGER.debug("Registered {}", provider.toString()); synchronized (this.servletsByReference) { servletsByReference.put(reference, new ServletReg(servlet, regs)); } return true; }
From source file:org.apache.struts2.JSPLoader.java
/** * Creates and inits a servlet// w w w . j a va2 s . c o m */ private Servlet createServlet(Class clazz) throws IllegalAccessException, InstantiationException, ServletException { JSPServletConfig config = new JSPServletConfig(ServletActionContext.getServletContext()); Servlet servlet = (Servlet) clazz.newInstance(); servlet.init(config); /* there is no need to call JspPage.init explicitly because Jasper's JSP base classe HttpJspBase.init(ServletConfig) calls: jspInit(); _jspInit(); */ return servlet; }
From source file:org.massyframework.assembly.servlet.jasper.JasparResourceProessor.java
/** * ???JspServlet// w w w. ja va2 s . co m * @param assembly ? * @return {@link JspServlet} */ @SuppressWarnings("unchecked") private Servlet getOrCreateJspServelt(HttpResource resource) throws ServletException { Servlet result = this.servletMap.get(resource.getAssembly()); if (result == null) { try { synchronized (this) { if (result == null) { MixinClassLoader jasperLoader = new MixinClassLoader(resource.getAssemblyClassLoader(), this.getClass().getClassLoader()); if (this.servletClass == null) { this.servletClass = (Class<? extends Servlet>) jasperLoader .loadClass("org.apache.jasper.servlet.JspServlet"); } Servlet tmp = ClassLoaderUtils.newInstance(this.servletClass); ClassLoader loader = ClassLoaderUtils.setThreadContextClassLoader(jasperLoader); try { Context context = new Context(jasperLoader, LoggerReference.adaptFrom(resource.getAssembly())); context.scanTlds(); tmp.init(new Config(context)); result = this.servletMap.putIfAbsent(resource.getAssembly(), tmp); if (result == null) { result = tmp; } } finally { ClassLoaderUtils.setThreadContextClassLoader(loader); } } } } catch (Exception e) { e.printStackTrace(); } } return result; }