startuputil.java

来自「反向的AJAX。最大的特性是我们成为反向的Ajax。DWR1.x允许你用java」· Java 代码 · 共 166 行

JAVA
166
字号
/* * Copyright 2005 Joe Walker * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.directwebremoting.impl;import javax.servlet.ServletConfig;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import org.directwebremoting.Container;import org.directwebremoting.ServerContextFactory;import org.directwebremoting.WebContextFactory;import org.directwebremoting.ServerContextFactory.ServerContextBuilder;import org.directwebremoting.WebContextFactory.WebContextBuilder;import org.directwebremoting.util.FakeServletConfig;import org.directwebremoting.util.FakeServletContext;import org.directwebremoting.util.Logger;import org.directwebremoting.util.ServletLoggingOutput;import org.directwebremoting.util.VersionUtil;/** * Some utilities to help get DWR up and running * @author Joe Walker [joe at getahead dot ltd dot uk] */public class StartupUtil{    /**     * A way to setup DWR outside of any Containers.     * This method can also serve as a template for in container code wanting     * to get DWR setup. Callers of this method should clean up after themselves     * by calling {@link #outOfContainerDestroy(Container)}     * @return A new initialized container.     * @throws ServletException If the setup fails.     */    public Container outOfContainerInit() throws ServletException    {        try        {            ServletConfig servletConfig = new FakeServletConfig("test", new FakeServletContext());            ServletContext servletContext = servletConfig.getServletContext();            StartupUtil.setupLogging(servletConfig, null);            StartupUtil.logStartup(servletConfig);            DefaultContainer container = ContainerUtil.createDefaultContainer(servletConfig);            ContainerUtil.setupDefaultContainer(container, servletConfig);            WebContextBuilder webContextBuilder = StartupUtil.initWebContext(servletConfig, servletContext, container);            StartupUtil.initServerContext(servletConfig, servletContext, container);            ContainerUtil.prepareForWebContextFilter(servletContext, servletConfig, container, webContextBuilder, null);            ContainerUtil.configureContainerFully(container, servletConfig);            ContainerUtil.publishContainer(container, servletConfig);            return container;        }        catch (ServletException ex)        {            throw ex;        }        catch (Exception ex)        {            throw new ServletException(ex);        }    }    /**     * Clean up the current thread when {@link #outOfContainerInit()} has been     * called.     * @param container The container created by {@link #outOfContainerInit()}.     */    public void outOfContainerDestroy(Container container)    {        ServletLoggingOutput.unsetExecutionContext();        WebContextBuilder webContextBuilder = (WebContextBuilder) container.getBean(WebContextBuilder.class.getName());        if (webContextBuilder != null)        {            webContextBuilder.unset();        }    }    /**     * Some logging so we have a good clue what we are working with.     * @param config The servlet config     */    public static void logStartup(ServletConfig config)    {        log.info("DWR Version " + VersionUtil.getVersion() + " starting.");        log.info("- Servlet Engine: " + config.getServletContext().getServerInfo());        log.info("- Java Version:   " + System.getProperty("java.version"));        log.info("- Java Vendor:    " + System.getProperty("java.vendor"));    }    /**     * Get the {@link WebContextFactory.WebContextBuilder} out of the     * {@link Container}, configure it (call WebContextBuilder#set()) and use it     * to configure the {@link WebContextFactory}.     * @param servletConfig The servlet configuration     * @param servletContext The servlet context     * @param servlet The servlet that we are running under     * @param container The container to save in the ServletContext     * @return a new WebContextBuilder     */    public static WebContextBuilder initWebContext(ServletConfig servletConfig, ServletContext servletContext, Container container)    {        WebContextBuilder webContextBuilder = (WebContextBuilder) container.getBean(WebContextBuilder.class.getName());        WebContextFactory.setWebContextBuilder(webContextBuilder);        webContextBuilder.set(null, null, servletConfig, servletContext, container);        return webContextBuilder;    }    /**     * Get the {@link ServerContextFactory.ServerContextBuilder} out of the     * {@link Container}, configure it and use it to configure the     * {@link ServerContextFactory}     * @param servletConfig The servlet configuration     * @param servletContext The servlet context     * @param container The container to save in the ServletContext     * @return The newly created ServerContextBuilder     */    public static ServerContextBuilder initServerContext(ServletConfig servletConfig, ServletContext servletContext, Container container)    {        ServerContextBuilder serverContextBuilder = (ServerContextBuilder) container.getBean(ServerContextBuilder.class.getName());        ServerContextFactory.setServerContextBuilder(serverContextBuilder);        serverContextBuilder.set(servletConfig, servletContext, container);        return serverContextBuilder;    }    /**     * We have some special logging classes to maintain an optional dependence     * on commons-logging. This sets the servlet for when this is not available.     * @param servletConfig The servlet configuration     * @param servlet The servlet that we are running under     */    public static void setupLogging(ServletConfig servletConfig, HttpServlet servlet)    {        ServletLoggingOutput.setExecutionContext(servlet);        String logLevel = servletConfig.getInitParameter(ContainerUtil.INIT_LOGLEVEL);        if (logLevel != null)        {            ServletLoggingOutput.setLevel(logLevel);        }    }    /**     * The log stream     */    private static final Logger log = Logger.getLogger(StartupUtil.class);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?