2011-12-22 34 views

回答

1

如果等待时间很短,那么我会尝试使用过滤器。请参阅
http://www.oracle.com/technetwork/java/filters-137243.html
http://docs.oracle.com/javaee/5/tutorial/doc/bnagb.html
您可以使用init方法检查接口设备。你不需要在doFilter方法中做任何事情。

+0

我是新来的。我的意思是在这之后有这个代码。 – rickz

+0

感谢您的想法。这对于这种情况不起作用,因为依赖系统“可能”在一个多小时内无法访问。并且由于SLA,我们的系统无法在此期间上线。 – Reusable

+0

在停机期间,当用户浏览您的wep应用程序时,您希望发生什么? 404未找到错误消息? – rickz

1

这样做的一种方法是将与http连接器关联的线程池的大小设置为零(minSpareThreads),然后使用JMX将其设置为更高的值。

只是一个理论 - 不知道它是否会工作。

另一种选择是探索通过JMX启动/停止扩展连接器。

本文还概述了如何使用JMX停止/启动连接器。 http://java-monitor.com/forum/showthread.php?t=169

+0

谢谢你的好主意。我正在尝试他们! – Reusable

+0

代码执行得很好,能够找到MBeanServer。奇怪的是,服务器仍然能够从另一个浏览器监听端口9090,即使在以下行之后:mbeanServer.invoke(objectName,“stop”,null,null); – Reusable

+0

我能够实现这种形式的jconsole。导航到此对象 - “Catalina:type = Connector,port = 8080”并调用stop。一旦我这样做,我无法使用telnet连接到8080。 – gkamal

-1
public class TestFilter implements Filter { 
    public void init(FilterConfig config) throws ServletException{ 
        System.out.println("init of TestFilter"); 
        // Make sure all other interfacing device is online here. 
    } 
    public void destroy(){}   
    public void doFilter(ServletRequest req,ServletResponse resp,FilterChain chain) 
    throws ServletException, IOException { 
        chain.doFilter(req,resp); 
    } 
} 
相关问题