On 8/2/06, Jochen Wiedmann <[EMAIL PROTECTED]> wrote:
Following your description, I have written the small test program below. It works fine for me. Jochen
As I write before, the server was set to enabled for keapalive. I rewrite little bit your test to more match my case. And it hasn't stopped. package sk.sodik.server; import java.net.URL; import org.apache.xmlrpc.client.XmlRpcClient; import org.apache.xmlrpc.client.XmlRpcClientConfigImpl; import org.apache.xmlrpc.server.PropertyHandlerMapping; import org.apache.xmlrpc.server.XmlRpcServerConfigImpl; import org.apache.xmlrpc.webserver.WebServer; public class ShutdownTest { /** * @param args */ public static void main(String[] args) { try { new ShutdownTest().testShutdown(); } catch (Exception e) { e.printStackTrace(); } } public static class Adder { public int add(int p1, int p2) { return p1 + p2; } } private WebServer setupServer() throws Exception { WebServer server = new WebServer(0); PropertyHandlerMapping mapping = new PropertyHandlerMapping(); mapping.addHandler("Adder", Adder.class); server.getXmlRpcServer().setHandlerMapping(mapping); XmlRpcServerConfigImpl config = new XmlRpcServerConfigImpl(); config.setEnabledForExtensions(true); config.setKeepAliveEnabled(true); server.getXmlRpcServer().setConfig(config); server.start(); return server; } public void testShutdown() throws Exception { final WebServer server = setupServer(); final int port = server.getPort(); new Thread() { public void run() { try { XmlRpcClient client = new XmlRpcClient(); XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); config.setServerURL(new URL("http://127.0.0.1:" + port + "/")); client.setConfig(config); for (int i = 0; i < 10; i++) { Integer result = (Integer) client .execute("Adder.add", new Object[] { new Integer(3), new Integer(5) }); System.out.println("Resut:"+result); Thread.sleep(2000); } } catch (Exception e) { e.printStackTrace(); } } }.start(); Thread.sleep(5000); System.out.println("Shuting down..."); server.shutdown(); System.out.println("done"); } }