Tomcat是非常有名的开源容器,因其开源我们可以对其做定制化的改变,而且Tomcat在其配置文件方面做了很多注释说明摘要,帮助我们更好的定制化我们所需的功能点。

New Tomcat Listener

首先看下Tomcat整个比较有名的Listener,在我们的conf/server.xml文件中一目了然


类图

NEXT 自定义的Listener,本代码是案例的方式,实际上在我们项目中定制化扩展了,譬如应用stop后,通知集群下的另外机器;监听接受UDP发过来的信息...

  1. import java.io.FileWriter;
  2. import java.io.IOException;
  3. import java.net.DatagramPacket;
  4. import java.net.DatagramSocket;
  5. import java.net.InetAddress;
  6. import java.net.SocketException;
  7. import java.net.UnknownHostException;
  8. import org.apache.catalina.Container;
  9. import org.apache.catalina.Executor;
  10. import org.apache.catalina.Lifecycle;
  11. import org.apache.catalina.LifecycleEvent;
  12. import org.apache.catalina.LifecycleException;
  13. import org.apache.catalina.LifecycleListener;
  14. import org.apache.catalina.LifecycleState;
  15. import org.apache.catalina.Server;
  16. import org.apache.catalina.Service;
  17. import org.apache.catalina.connector.Connector;
  18. import org.apache.juli.logging.Log;
  19. import org.apache.juli.logging.LogFactory;
  20. public class EwellListener implements LifecycleListener {
  21. public void lifecycleEvent(LifecycleEvent event) {
  22. System.out.println("-------------------------------------------------");
  23. if (event != null && event.getLifecycle() != null) {
  24. System.out
  25. .println(event.getLifecycle().getStateName() + "chenyang");
  26. }
  27. System.out.println("-------------------------------------------------");
  28. if (!(event.getLifecycle() instanceof Server))
  29. return;
  30. if (!Lifecycle.AFTER_START_EVENT.equals(event.getType()))
  31. return;
  32. Server server = (Server) event.getLifecycle();
  33. }
  34. }

对于容器在不同事件下触发的行为,在tomcat中LifeCycle都有说明

下一步就是如何在Tomcat中能够进行识别以及启动呢?

1.把你生成的jar包放入,tomcat的lib的目录下${CATALINA_HOME}/lib or ${CATALINA_BASE}/lib

2.把你的监听器配置到server.xml文件中

Tomcat中Listener的使用范例(转载http://cywhoyi.iteye.com/blog/2075848)的更多相关文章

  1. 深度解读Tomcat中的NIO模型(转载)

    转自https://www.jianshu.com/p/76ff17bc6dea 一.I/O复用模型解读 Tomcat的NIO是基于I/O复用来实现的.对这点一定要清楚,不然我们的讨论就不在一个逻辑线 ...

  2. 数据库中无数据时查询数据为空,但出现空指针异常的解决方案(转载https://blueskator.iteye.com/blog/2096026)

    异常:java.lang.NullPointerException 解决方案: try{ hotelImageList = ihotelImgManager.query(hiqc); }catch(E ...

  3. java相关的路径获取 (转载 http://tomfish88.iteye.com/blog/971255)

    在jsp和class文件中调用的相对路径不同.在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProp ...

  4. 理解水平扩展和垂直扩展 (转载 http://yunjiechao-163-com.iteye.com/blog/2126981)

      当一个开发人员提升计算机系统负荷时,通常会考虑两种方式垂直扩展和水平扩展.选用哪种策略主要依赖于要解决的问题 以及系统资源的限制.在这篇文章中我们将讲述这两种策略并讨论每种策越的优缺点.如果你已经 ...

  5. 无前趋的顶点优先的拓扑排序方法(JAVA)(转载http://128kj.iteye.com/blog/1706968)

    无前趋的顶点优先的拓扑排序方法 该方法的每一步总是输出当前无前趋(即人度为零)的顶点,其抽象算法可描述为:     NonPreFirstTopSort(G){//优先输出无前趋的顶点       w ...

  6. php上传文件报错以及对应代号信息-转载http://jewel-m.iteye.com/blog/1210344

    用PHP上传文件时,我们会用程序去监听浏览器发送过来的文件信息,首先会通 过$_FILES[fieldName]['error']的不同数值来判断此欲上传的文件状态是否正常.$_FILES[field ...

  7. Java Web开发: Tomcat中部署项目的三种方法

    web开发,在tomcat中部署项目的方法: 可以参考http://m.blog.csdn.net/blog/u012516903/15741727 定义$CATALINA_HOME指的是Tomcat ...

  8. tomcat中server.xml配置详解(转载)(一)

    转载自:https://www.cnblogs.com/starhu/p/5599773.html tomcat中server.xml配置详解 Tomcat Server的结构图如下:(该文件描述了如 ...

  9. Tomcat启动时加载数据到缓存---web.xml中listener加载顺序(例如顺序:1、初始化spring容器,2、初始化线程池,3、加载业务代码,将数据库中数据加载到内存中)

    最近公司要做功能迁移,原来的后台使用的Netty,现在要迁移到在uap上,也就是说所有后台的代码不能通过netty写的加载顺序加载了. 问题就来了,怎样让迁移到tomcat的代码按照原来的加载顺序进行 ...

随机推荐

  1. Android JNI和NDK关系

    1.什么JNI Java Native Interface(JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程接口,它使得在 Java 虚拟机(VM) ...

  2. BZOJ 1059 矩阵游戏

    Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏--矩阵游戏.矩阵游戏在一个\(N \times N\)黑白方阵进行(如同国际象棋一般,只是颜色是随意的). ...

  3. H3C S5500上层接路由,VLAN IP作网站配置实例

    # version 5.20, Release 2208 # sysname S5500-1 # clock timezone #Web#8#01 add 08:00:00 # super passw ...

  4. SORT ORDER BY STOPKEY

    select * from ( select * from ( select a.*,rownum rn from page a where object_id >1000 and owner= ...

  5. PGA突破pga_aggregate_target限制

    SQL> show parameter pga NAME         TYPE  VALUE ------------------------------------ ----------- ...

  6. 【高精度】NCPC 2014 C catalansqure

    题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1789 题目大意: 求大卡特兰数..公式如下.输入n求Sn(n<=5000) 题目 ...

  7. 【搜索】【并查集】Codeforces 691D Swaps in Permutation

    题目链接: http://codeforces.com/problemset/problem/691/D 题目大意: 给一个1到N的排列,M个操作(1<=N,M<=106),每个操作可以交 ...

  8. 衬衫面料品牌:Alumo_衬衫_男装_男装:衬衫、法式衬衫、袖扣领带、西服西裤等男士正装服饰-仕族官网

    衬衫面料品牌:Alumo_衬衫_男装_男装:衬衫.法式衬衫.袖扣领带.西服西裤等男士正装服饰-仕族官网 衬衫面料品牌:Alumo

  9. windows下计算文件的md和sha值

    在windows下可以使用FCIV命令行工具计算文件的md5和sha值,具体例子如下: FCIV -md5 -sha1 path\filename.ext 例如: FCIV-md5-sha1 c:\w ...

  10. sql server 常用小知识点

    1. sql server的语法:中文要加 N select * from eVA_EMPBoard where name = N'施纪平' 而oracle的不用 2.