Java 清除远程服务器的缓存

Java 清除远程服务器的缓存,java,ehcache,Java,Ehcache,如何在远程服务器上清除ehcache 我的应用程序正在暂存环境(主机111.22.3.44和端口17000)中运行,我想编写一个实用程序方法,可以连接到给定的主机:端口,并清除我的应用程序的ehcache。这个实用程序应该可以在Windows和Linux中工作 我使用JConsole.exe实用程序刷新在stage server中创建的ehcache的缓存,但有一种情况需要通过编程来完成。Hurrey…:)我得到了在远程环境中清除ehcache的解决方案。在这里,我编写了一个Java实用程序方法

如何在远程服务器上清除
ehcache

我的应用程序正在暂存环境(主机
111.22.3.44和端口
17000
)中运行,我想编写一个实用程序方法,可以连接到给定的
主机:端口
,并清除我的应用程序的
ehcache
。这个实用程序应该可以在Windows和Linux中工作

我使用
JConsole.exe
实用程序刷新在stage server中创建的
ehcache
的缓存,但有一种情况需要通过编程来完成。

Hurrey…:)我得到了在远程环境中清除
ehcache
的解决方案。在这里,我编写了一个Java实用程序方法,它将清除由主机名和端口指定的给定远程机器的
ehcache

public void flushEhcache() throws IOException, NamingException,  MalformedObjectNameException, NullPointerException, AttributeNotFoundException, InstanceNotFoundException, MBeanException, ReflectionException {
    String host = "111.22.3.44";
    String port = "16000";
    JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://"
        + host + ":" + port + "/jmxrmi");
    JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
    MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();        
    ObjectName beanName = new ObjectName("net.sf.ehcache:type=CacheManager,name=Your  Application Name Here");        
    mbsc.invoke(beanName, "clearAll", new Object[0], new String[0]);
    System.out.println("Flushed out ehcache succesfully");
}

看起来您需要一些调用远程JXMbean的方法。开始看这里谢谢Joachim,我浏览了指定的url,但我有以下疑问,因为我需要用Java实现它,在我的例子中,url(111.22.3.45)是什么,bean名称是什么?如果您不确定要使用什么ObjectName。连接和获取所有现有MBean的名称很容易,如下所示:
Set names=mbsc.queryNames(null,null)