1 package enhydraManager.business; 2 3 import java.util.Vector ; 4 import java.util.Enumeration ; 5 6 import com.lutris.appserver.server.httpPresentation.servlet.*; 7 8 import com.lutris.appserver.server.*; 9 import com.lutris.appserver.server.session.*; 10 import com.lutris.appserver.server.session.Session; 11 import enhydraManager.spec.*; 12 import com.lutris.appserver.server.sessionContainerAdapter.*; 13 import javax.servlet.*; 14 15 import org.apache.catalina.*; 16 import org.apache.catalina.core.*; 17 import org.apache.catalina.core.StandardContext; 18 19 import java.util.Date ; 20 21 public class ApplicationSessionListImpl implements ApplicationSessionList{ 22 23 24 public Vector getList(String service,String host,String application) throws Exception { 25 26 27 StandardContext sc=GlobalImpl.getServlet(service,host,application); 28 29 30 Vector result = new Vector (); 31 Application app = null; 32 SessionManager sessionManager = null; 33 String sessionID=null; 34 Session session = null; 35 36 try{ 37 38 Container[] wrappers=sc.findChildren(); 39 StandardWrapper sw=(StandardWrapper)wrappers[0]; 40 41 Servlet s=sw.allocate(); 42 43 44 if (s instanceof HttpPresentationServlet){ 45 app = ((HttpPresentationServlet)s).getApplication(); 46 47 try { 48 sessionManager = app.getSessionManager(); 49 if ((sessionManager instanceof ContainerAdapterSessionManager) || (sessionManager instanceof JmxContainerAdapterSessionManager)) 50 { 51 52 Manager manager=sc.getManager(); 53 org.apache.catalina.Session[] ses= manager.findSessions(); 54 55 for(int i=0;i<ses.length;i++) 56 result.addElement(ses[i].getId()); 57 58 }else{ 59 Enumeration sessionKeys = sessionManager.getSessionKeys(); 60 61 while (sessionKeys.hasMoreElements()) { 62 sessionID = (String ) sessionKeys.nextElement(); 63 result.addElement(sessionID); 64 } 65 66 } 67 68 69 } catch (Exception ex){ 70 System.out.println("Couldn't get number of active sessions for "+application+" servlet!"); 71 result.clear(); 72 } 73 }else{ 74 try{ 75 Manager manager=sc.getManager(); 76 org.apache.catalina.Session[] ses= manager.findSessions(); 77 for(int i=0;i<ses.length;i++) 78 result.addElement(ses[i].getId()); 79 } catch (Exception ex){ 80 System.out.println("Couldn't get number of active sessions for "+application+" servlet!"); 81 result.clear(); 82 } 83 84 } 85 86 sw.deallocate(s); 87 88 89 }catch(ServletException e){ 90 91 System.out.println("Couldn't acess to servlet :"+application+" !"); 92 result.clear(); 93 94 } 95 96 97 return result; 98 } 99 100 } 101 102 | Popular Tags |