知识库--StandardService + Lifecycle(start/stop)+initialize(72)

翻译 2017年01月04日 00:31:20

StandardService + Lifecycle(start/stop)+initialize

核心:
//Server提供了一个优雅的启动和停止方法
//Service 封装了container和多个connectors

The lifecycle methods are the start and the stop methods inherited from the Lifecycle interface plus the initialize method.

//initialize method calls the initialize method of each connector

public void initialize() throws LifecycleException{
    if(initialized){
        throw new LifecycleException();
    }
    initialized = true;

    synchronized(connectors){
        for(int i =0;i<connectors.length;i++){
            connectors[i].initialize();
        }
    }   
}

//start method starts the associated container as well as the connector added to this service

public void start() throws LifecycleException{
    if(started)
        throw new LifecycleException();
    //notify our interested LifecycleListeners
    lifecyle.fireLifecycleEvent(BEFORE_START_EVENT,null);
    //...sout
    lifecycle.fireLifecycleEvent(START_EVENT,null);
    started = true;
    //start our defined container first
    if(container != null){
        synchronized(container){
            if(container instanceof Lifecycle){
                ((Lifecycle)container).start();
            }
        }
    }
    //start our defined connectors 
    synchronized(connectors){
        for(int i =0;i<connectors.length;i++){
            if(connectors[i] instanceof Lifecycle){
                ((Lifecycle)connectors[i]).start();
            }
        }
    }
    //notify
    lifecycle.fireLifecycleEvent(AFTER_START_EVENT,null);
}

//stop method stops the associated container and all the connectors

public void stop()throws LifecycleExcetption{
    //validate and update our current component state
    if(!started){
        throw new LifecycleException();
    }
    //notify our interested lifecycleListeners
    lifecycle.fireLifecycleEvent(BEFORE_STOP_EVENT,null);
    lifecycle.fireLifecycleEvent(STOP_EVENT,null);
    //sout...
    started = false;
    //stop connectors first
    synchronized(connectors){
        for(int i =0;i<connectors.length;i++){
            if(connectors[i] instanceof Lifecycle)
                ((Lifecycle)connectors[i]).stop();
        }
    }
    //stop container second
    if(container !=null){
        synchronized(container){
            if(container instanceof Lifecycle){
                ((Lifecycle)container).stop();
            }
        }
    }
    //notify
    lifecycle.fireLifecycleEvent(AFTER_STOP_EVENT,null);
}

Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalin

我创建spring的过程中遇到了这个如下问题: 2013-7-25 9:42:45 org.apache.catalina.core.AprLifecycleListener init 信息: T...
  • u011449778
  • u011449778
  • 2013年07月25日 14:39
  • 3431

shell脚本示例,start stop restart

PID_FILE=pid/malformedword.pid CLASS_PATH=package/lib MAIN_CLASS=com.youku.netty.HttpServer echo "st...
  • a291382932
  • a291382932
  • 2015年07月14日 10:14
  • 799

Plugin execution not covered by lifecycle configuration问题

Plugin execution not covered by lifecycle configuration问题
  • Abaneo
  • Abaneo
  • 2017年07月08日 12:03
  • 401

Mysql mysql.server启动脚本详解

今天不忙,看了一下linux下Mysql的启动脚本,记录一下大体的过程,具体详细的命令的执行,没有写出   #1.变量初始化 #---------------------------------...
  • kobeyan
  • kobeyan
  • 2012年05月22日 17:28
  • 9376

4.10 MediaPlayer.stop() 后 如何再次调用start()?

MediaPlayer.stop() 后 如何再次调用start()?  分享| 2013-12-31 19:09匿名 | 浏览 846 次 通过create方法创建了Player 第一次调用s...
  • Rodulf
  • Rodulf
  • 2016年03月08日 11:39
  • 1130

知识库--lifecycle interface (46)

The SimpleContextLifecycleListener class represents a listener class for the SimpleContext class.The...
  • qfzhangwei
  • qfzhangwei
  • 2016年12月10日 00:15
  • 198

Android start stop命令

我们经常使用stop start命令来重启framework,我们来看下其代码 是在system/core/toolbox下面,原理很简单就是利用ctl属性来控制进程。 start.c #inc...
  • kc58236582
  • kc58236582
  • 2016年12月20日 15:43
  • 1162

知识库--Lifecycle (44)

Lifecycle Catalina consists of many components. When Catalina is started, these components need to b...
  • qfzhangwei
  • qfzhangwei
  • 2016年12月09日 13:54
  • 165

mysql服务的启动和停止 net stop mysql net start mysql

第一招、mysql服务的启动和停止   net stop mysql   net start mysql   第二招、登陆mysql   语法如下: mysql -u用户名-p用户密码   ...
  • tfy1332
  • tfy1332
  • 2013年07月11日 09:11
  • 12154

知识库--Digester(72)

1 where will use digester? A context represents a Web application, therefore the configuration of...
  • qfzhangwei
  • qfzhangwei
  • 2017年01月06日 08:47
  • 113
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:知识库--StandardService + Lifecycle(start/stop)+initialize(72)
举报原因:
原因补充:

(最多只允许输入30个字)