org.apache.catalina.startup.Catalina start之过程分析

【启动servlet容器(tomcat)的版本日志监听器】
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server version: Apache Tomcat/7.0.57
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server built: Nov 3 2014 08:39:16 UTC
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server number: 7.0.57.0
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Name: Windows 8.1
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Version: 6.3
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Architecture: amd64
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JAVA_HOME: F:\Java\jdk1.7.0_76\jre
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Version: 1.7.0_76-b13
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Vendor: Oracle Corporation
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_BASE: F:\gszh\gszh\apache-tomcat-7.0.57
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_HOME: F:\gszh\gszh\apache-tomcat-7.0.57
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:61468
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.home=F:\gszh\gszh\apache-tomcat-7.0.57
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.base=F:\gszh\gszh\apache-tomcat-7.0.57
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.endorsed.dirs=F:\gszh\gszh\apache-tomcat-7.0.57/common/endorsed
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.io.tmpdir=F:\gszh\gszh\apache-tomcat-7.0.57\temp
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.library.path=F:\Java\jdk1.7.0_76\jre\bin;F:\gszh\gszh\apache-tomcat-7.0.57\bin
五月 02, 2016 10:35:59 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dsun.io.useCanonCaches=false
【调用AprLifecycleListener监听器,LifecycleEvent是LifecycleListener接口的抽象方法(确认指定事件的发生)】
五月 02, 2016 10:35:59 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: Loaded APR based Apache Tomcat Native library 1.1.32 using APR version 1.5.1.
五月 02, 2016 10:35:59 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
五月 02, 2016 10:36:00 下午 org.apache.catalina.core.AprLifecycleListener initializeSSL
信息: OpenSSL successfully initialized (OpenSSL 1.0.1j 15 Oct 2014)
【初始化servlet容器默认的协议】
五月 02, 2016 10:36:00 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-apr-8080"]
五月 02, 2016 10:36:00 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-apr-8009"]
五月 02, 2016 10:36:00 下午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1983 ms
【启动tomcat的服务】
五月 02, 2016 10:36:00 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
【创建tomcat引擎的实例】
五月 02, 2016 10:36:00 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.57
【启动事件监听器的主机配置信息对应的项目实例和相关的上下文定义,部署的描述符文件,??.xml】
五月 02, 2016 10:36:00 下午 org.apache.catalina.startup.HostConfig deployDescriptor
信息: Deploying configuration descriptor F:\gszh\gszh\apache-tomcat-7.0.57\conf\Catalina\localhost\test.xml
【创建一个新的随机数生成器实例,该实例是我们应该使用的生成会话标识符】
五月 02, 2016 10:36:01 下午 org.apache.catalina.util.SessionIdGenerator createSecureRandom
信息: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [223] milliseconds.
【完成】
五月 02, 2016 10:36:01 下午 org.apache.catalina.startup.HostConfig deployDescriptor
信息: Deployment of configuration descriptor F:\gszh\gszh\apache-tomcat-7.0.57\conf\Catalina\localhost\test.xml has finished in 954 ms
五月 02, 2016 10:36:01 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\docs
五月 02, 2016 10:36:01 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\docs has finished in 92 ms
五月 02, 2016 10:36:01 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\examples
【ApplicationContext是ServletContext标准实现,它表示一个web应用程序的执行环境。这个类的一个实例与每个标准的servlet实例相关联】
五月 02, 2016 10:36:02 下午 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
五月 02, 2016 10:36:02 下午 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
五月 02, 2016 10:36:02 下午 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@33ed55b9')
【部署完成】
五月 02, 2016 10:36:02 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\examples has finished in 539 ms
五月 02, 2016 10:36:02 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\fileData
五月 02, 2016 10:36:02 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\fileData has finished in 64 ms
五月 02, 2016 10:36:02 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\host-manager
五月 02, 2016 10:36:02 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\host-manager has finished in 91 ms
五月 02, 2016 10:36:02 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\it315
五月 02, 2016 10:36:02 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\it315 has finished in 136 ms
五月 02, 2016 10:36:02 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\lib
五月 02, 2016 10:36:02 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\lib has finished in 58 ms
五月 02, 2016 10:36:02 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\manager
五月 02, 2016 10:36:02 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\manager has finished in 72 ms
五月 02, 2016 10:36:02 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\ROOT
五月 02, 2016 10:36:02 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\ROOT has finished in 57 ms
五月 02, 2016 10:36:02 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\shop
【将指定的消息写入servlet日志文件】
五月 02, 2016 10:36:05 下午 org.apache.catalina.core.ApplicationContext log
信息: No Spring WebApplicationInitializer types detected on classpath
五月 02, 2016 10:36:05 下午 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
【执行实际的根应用程序上下文初始化工作。被ContextLoaderListener(在web.xml的配置文件指定)调用。
initWebApplicationContext的作用为:web.xml的context-params节点的“contextClass”和“contextConfigLocation”初始化Spring的web应用程序上下文特定的servlet上下文。】
五月 02, 2016 10:36:05 下午 org.springframework.web.context.ContextLoader initWebApplicationContext
信息: Root WebApplicationContext: initialization started
【AbstractApplicationContext是IoC容器抽象类,prepareRefresh在当前上下文中准备刷新,设置它的启动日期和活跃标志以及执行任何初始化的属性源】
五月 02, 2016 10:36:05 下午 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing Root WebApplicationContext: startup date [Mon May 02 22:36:05 CST 2016]; root of context hierarchy
【XmlBeanDefinitionReader为XML Bean定义的读者,从指定的xml文件中加载相关的bean定义】
五月 02, 2016 10:36:05 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from file [F:\gszh\gszh\apache-tomcat-7.0.57\webapps\shop\WEB-INF\classes\applicationContext-action.xml]
五月 02, 2016 10:36:05 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from file [F:\gszh\gszh\apache-tomcat-7.0.57\webapps\shop\WEB-INF\classes\applicationContext-public.xml]
五月 02, 2016 10:36:06 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from file [F:\gszh\gszh\apache-tomcat-7.0.57\webapps\shop\WEB-INF\classes\applicationContext-service.xml]
【加载配置文件属性到给定的实例。由于applicationContext-service.xml有关联了sessionFactory(<property name="sessionFactory" ref="sessionFactory" />),所以这是它下一步加载hibernate框架的动作】
五月 02, 2016 10:36:06 下午 org.springframework.core.io.support.PropertiesLoaderSupport loadProperties
信息: Loading properties file from class path resource [conn.properties]
【DefaultListableBeanFactory注册所有bean定义(可能从bean定义文件读取),
preInstantiateSingletons确保所有non-lazy-init单例实例化,还考虑FactoryBeans。如果需要的话,通常在工厂设置结束时调用】
五月 02, 2016 10:36:06 下午 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@4f806802: defining beans [baseAction,categoryAction,accountAction,org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,date,dataSource,sessionFactory,transactionManager,advice,org.springframework.aop.config.internalAutoProxyCreator,pointcut,org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0,baseService,categoryService,accountService]; root of factory hierarchy
【补充说明:
applicationContext-action.xml:baseAction,categoryAction,accountAction
applicationContext-public.xml:
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0对应<context:property-placeholderlocation="classpath:conn.properties"/>,
dataSource,
sessionFactory,
transactionManager,
advice,
org.springframework.aop.config.internalAutoProxyCreator,
pointcut,
org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0
applicationContext-service.xml:
baseService,categoryService,accountService

【c3p0的MLog】
五月 02, 2016 10:36:06 下午 com.mchange.v2.log.MLog <clinit>
信息: MLog clients using java 1.4+ standard logging.
【C3P0Registry的主要目的是维护“identityTokens”的映射到c3p0数据源。如果相同的数据源被查找(和通过JNDI或引用反序列化),c3p0可以确保总是返回相同的实例。】
五月 02, 2016 10:36:07 下午 com.mchange.v2.c3p0.C3P0Registry banner
信息: Initializing c3p0-0.9.0.2 [built 26-September-2005 12:55:26 -0400; debug? true; trace: 10]
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
【创建Hibernate SessionFactory】
五月 02, 2016 10:36:07 下午 org.springframework.orm.hibernate3.LocalSessionFactoryBean buildSessionFactory
信息: Building new Hibernate SessionFactory
【初始化c3p0连接池】
五月 02, 2016 10:36:07 下午 com.mchange.v2.c3p0.PoolBackedDataSource getPoolManager
信息: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource@373506de[ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, description -> null, driverClass -> com.mysql.jdbc.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 373506de, idleConnectionTestPeriod -> -1, initialPoolSize -> 3, jdbcUrl -> jdbc:mysql://localhost:3306/shop, loginTimeout -> 0, maxIdleTime -> 0, maxPoolSize -> 15, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 3, numHelperThreads -> 3, preferredTestQuery -> null, properties -> {user=**, password=**}, propertyCycle -> 300, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, usesTraditionalReflectiveProxies -> false ]
【HibernateTransactionManager允许绑定一个Hibernate会话从指定的线程工厂,可允许一个线程会话对应一个工厂。SessionFactoryUtils和HibernateTemplate知道绑定的线程以及能自动参与事务。
afterPropertiesSet调用一个BeanFactory的所有bean属性(包括满足BeanFactoryAware ApplicationContextAware)

五月 02, 2016 10:36:08 下午 org.springframework.orm.hibernate3.HibernateTransactionManager afterPropertiesSet
信息: Using DataSource [com.mchange.v2.c3p0.ComboPooledDataSource@373506de[ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, description -> null, driverClass -> com.mysql.jdbc.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 373506de, idleConnectionTestPeriod -> -1, initialPoolSize -> 3, jdbcUrl -> jdbc:mysql://localhost:3306/shop, loginTimeout -> 0, maxIdleTime -> 0, maxPoolSize -> 15, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 3, numHelperThreads -> 3, preferredTestQuery -> null, properties -> {user=**, password=**}, propertyCycle -> 300, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, usesTraditionalReflectiveProxies -> false ]] of Hibernate SessionFactory for HibernateTransactionManager
【spring容器初始化service的bean
<!-- 表达式, 定义哪个包的哪些类需要切入事务,但是此处并且没有制定类中哪些方法,需要切入什么样 事务 -->
<aop:pointcut expression="execution( cn.it.shop.service.impl..*(..))" id="pointcut" />br/>】
cn.it.shop.service.impl.CategoryServiceImpl@75fe6111
获取父类信息:class cn.it.shop.service.impl.BaseServiceImpl
获取父类信息包括泛型信息:cn.it.shop.service.impl.BaseServiceImpl<cn.it.shop.model.Category>
clazz:class cn.it.shop.model.Category
br/>-----setSessionFactory----
cn.it.shop.service.impl.AccountServiceImpl@478bb66f
获取父类信息:class cn.it.shop.service.impl.BaseServiceImpl
获取父类信息包括泛型信息:cn.it.shop.service.impl.BaseServiceImpl<cn.it.shop.model.Account>
clazz:class cn.it.shop.model.Account
-----setSessionFactory----
五月 02, 2016 10:36:09 下午 org.springframework.web.context.ContextLoader initWebApplicationContext
信息: Root WebApplicationContext: initialization completed in 3494 ms
【加载Struts2】
【委派简单的日志记录器,并解析Struts2的配置文件】
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsing configuration file [struts-default.xml]
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsing configuration file [struts-plugin.xml]
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Parsing configuration file [struts.xml]
【ObjectFactory负责构建核心框架对象。用户可以注册自己的实现的ObjectFactory来控制这些对象的实例化。
这个默认实现使用buildBean(构建一个指定类型的泛型Java对象)方法来创建所有类(拦截器、actions、results等)】
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (spring) for (com.opensymphony.xwork2.ObjectFactory)
【FileManager:访问文件系统上的文件和监控变化】
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (com.opensymphony.xwork2.FileManager)
【XWorkConverter是一个转化器类,单实例多线程。用以转换很复杂的对象】
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.impl.XWorkConverter)
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (com.opensymphony.xwork2.TextProvider)
【ActionProxyFactory是Xwork创建和调度action代理的入口点】
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (com.opensymphony.xwork2.ActionProxyFactory)
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (com.opensymphony.xwork2.conversion.ObjectTypeDeterminer)
【ActionMapper提供了映射HTTP请求与action的invocation请求。它不需要保证ActionMapping返回的是一个真正的行动或确保一个有效的请求。因此,大多数ActionMappers并不需要咨询Struts配置来确定一个请求应该被映射。】
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (org.apache.struts2.dispatcher.mapper.ActionMapper)
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (jakarta) for (org.apache.struts2.dispatcher.multipart.MultiPartRequest)
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (org.apache.struts2.views.freemarker.FreemarkerManager)
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (org.apache.struts2.components.UrlRenderer)
【action的验证管理类,基于规则和注解】
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (com.opensymphony.xwork2.validator.ActionValidatorManager)
【创建值栈的工厂】
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (com.opensymphony.xwork2.util.ValueStackFactory)
【反射供应者】
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (com.opensymphony.xwork2.util.reflection.ReflectionProvider)
【ReflectionContextFactory:创建并返回一个标准的OGNL表达式】
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (com.opensymphony.xwork2.util.reflection.ReflectionContextFactory)
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (com.opensymphony.xwork2.util.PatternMatcher)
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (org.apache.struts2.dispatcher.StaticContentLoader)
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (com.opensymphony.xwork2.UnknownHandlerManager)
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Choosing bean (struts) for (org.apache.struts2.views.util.UrlHelper)
【初始化Struts-Spring的集成环境】
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Initializing Struts-Spring integration...
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: Setting autowire strategy to name
五月 02, 2016 10:36:09 下午 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info
信息: ... initialized Struts-Spring integration successfully
五月 02, 2016 10:36:10 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory F:\gszh\gszh\apache-tomcat-7.0.57\webapps\shop has finished in 7,836 ms
【再一次启动默认协议】
五月 02, 2016 10:36:10 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-apr-8080"]
五月 02, 2016 10:36:10 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-apr-8009"]
五月 02, 2016 10:36:10 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 9990 ms

转载于:https://blog.51cto.com/1929297/2048101

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: org.apache.catalina.startup.catalina.start是Tomcat服务器启动时的一个类。它是Tomcat启动的入口点,负责加载和初始化Tomcat的各个组件,包括连接器、容器、Web应用程序等。 ### 回答2: org.apache.catalina.startup.catalina.start 是 Apache Tomcat Web 服务器的启动类。Apache Tomcat 是一个开源的、轻量级的、灵活的、用于Java Web开发的Web服务器。它是Java Servlet、JavaServer Pages、Java Expression Language和Java WebSocket的参考实现。该启动类是Tomcat服务器启动时的入口点。 当启动Tomcat服务器时,会首先执行该启动类中的main方法。在该方法中,会完成一系列的初始化操作,包括读取配置文件、创建必要的组件、加载Web应用程序等。 在该启动类中,有许多重要的方法,如start方法、await方法等。start方法用于启动Tomcat服务器,其中会调用一系列的初始化方法,如createServer方法、initialize方法等。await方法用于阻塞当前线程,等待服务器停止命令的到来。 该类还包含一些静态私有方法,用于执行一些具体的启动过程细节,如configureStart方法用于配置服务器的启动参数,createCatalina配置方法用于创建Catalina对象等。 通过阅读org.apache.catalina.startup.catalina.start类的源码,可以更深入地了解Tomcat服务器的启动过程和相关的配置细节。对于开发人员来说,了解这些细节可以帮助他们更好地理解和使用Tomcat服务器。 总之,org.apache.catalina.startup.catalina.start是Tomcat服务器的启动类,负责完成服务器的初始化和启动工作,对于研究和使用Tomcat服务器的开发人员来说,了解这个类的功能和作用非常重要。 ### 回答3: org.apache.catalina.startup.catalina.start是Apache Tomcat中的一个类。 Apache Tomcat是一个开源的Java Servlet容器,用于运行Java Servlet和JSP(JavaServer Pages)的Web应用程序。org.apache.catalina.startup.catalina.start是Tomcat的启动类之一,在Tomcat启动时调用。 该类的主要作用是初始化Tomcat服务器的配置信息,创建服务器并对其进行配置,最后启动服务器。它会加载Tomcat的配置文件,包括server.xml、context.xml等,通过解析这些文件来获取服务器的配置信息。 在启动过程中,org.apache.catalina.startup.catalina.start会初始化Tomcat的Connector,用于处理客户端的请求。它会根据配置文件的设置创建并配置不同的Connector,例如HTTP和HTTPS Connector,用于监听不同的端口。 启动过程中,还会对Tomcat的各项服务和组件进行初始化和配置,例如创建和配置线程池、连接池、Session Manager等。该类还负责加载Web应用程序,并将其部署到Tomcat服务器中。 最后,org.apache.catalina.startup.catalina.start会调用servers的start方法,启动Tomcat服务器。在服务器启动后,它会监听客户端的请求,并将请求分发到相应的Web应用程序进行处理。 总之,org.apache.catalina.startup.catalina.start是Apache Tomcat中负责启动Tomcat服务器的一个重要类,它通过加载配置文件和初始化各项服务和组件,最终启动Tomcat服务器,并监听客户端的请求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值