首页 > 代码库 > Tomcat中Listener的使用范例(转载http://cywhoyi.iteye.com/blog/2075848)

Tomcat中Listener的使用范例(转载http://cywhoyi.iteye.com/blog/2075848)

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

 

New Tomcat Listener

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


技术分享
类图


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

Java代码  技术分享
  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.   
  9. import org.apache.catalina.Container;  
  10. import org.apache.catalina.Executor;  
  11. import org.apache.catalina.Lifecycle;  
  12. import org.apache.catalina.LifecycleEvent;  
  13. import org.apache.catalina.LifecycleException;  
  14. import org.apache.catalina.LifecycleListener;  
  15. import org.apache.catalina.LifecycleState;  
  16. import org.apache.catalina.Server;  
  17. import org.apache.catalina.Service;  
  18. import org.apache.catalina.connector.Connector;  
  19. import org.apache.juli.logging.Log;  
  20. import org.apache.juli.logging.LogFactory;  
  21.   
  22. public class EwellListener implements LifecycleListener {  
  23.   
  24.     public void lifecycleEvent(LifecycleEvent event) {  
  25.         System.out.println("-------------------------------------------------");  
  26.         if (event != null && event.getLifecycle() != null) {  
  27.             System.out  
  28.                     .println(event.getLifecycle().getStateName() + "chenyang");  
  29.         }  
  30.         System.out.println("-------------------------------------------------");  
  31.         if (!(event.getLifecycle() instanceof Server))  
  32.             return;  
  33.   
  34.         if (!Lifecycle.AFTER_START_EVENT.equals(event.getType()))  
  35.             return;  
  36.   
  37.         Server server = (Server) event.getLifecycle();  
  38.       
  39.     }  
  40. }  

 对于容器在不同事件下触发的行为,在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)