Tomcat中Listener的使用範例(轉載http://cywhoyi.iteye.com/blog/2075848)

Tomcat是很是有名的開源容器,因其開源咱們能夠對其作定製化的改變,並且Tomcat在其配置文件方面作了不少註釋說明摘要,幫助咱們更好的定製化咱們所需的功能點。java

 

New Tomcat Listener

首先看下Tomcat整個比較有名的Listener,在咱們的conf/server.xml文件中一目瞭然apache



類圖tomcat


NEXT 自定義的Listener,本代碼是案例的方式,實際上在咱們項目中定製化擴展了,譬如應用stop後,通知集羣下的另外機器;監聽接受UDP發過來的信息...spa

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都有說明.net



 

下一步就是如何在Tomcat中可以進行識別以及啓動呢?code

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

2.把你的監聽器配置到server.xml文件中
xml

相關文章
相關標籤/搜索