I have a very simple test case that I've been trying out for evaluation of 
Restlet. It works well under Restlet 2.0.10 but when I try this on Restlet 
2.1.rc1 the test fails, the server never responds to the client request.

I also get a "Unable to block the thread at the cyclic barrier" error from the 
server.

Here's the sample code, this works fine with 2.0.10 but fails with 2.1.rc1. 
What am I doing wrong?

MessageExtractorRestlet.java

public class MessageExtractorRestlet {
        
        // Restlet component
        private Component component;
        
        void start() throws Exception {
        
                // Create a new Restlet component
                component = new Component();
                
                // Add a new HTTP server 
                component.getServers().add(Protocol.HTTP, 8182);
                
                // Create the router
                final Router router = new 
Router(component.getContext().createChildContext());
                
                // Capture "message" requests
                router.attach("/" + MessageResourceServer.getHTTPCommand(), 
MessageResourceServer.class);
                
                // Attach this application
                component.getDefaultHost().attach(router);
                
                // Start the component
                component.start();
        }
        
        void stop() throws Exception {
                
                if (component != null) {
                        component.stop();
                        component = null;
                }
        }
        
}

MessageResource.java

public interface MessageResource {
        
        @Get
        public String retrieve(long aSequence);

}

MessageResourceServer.java

public class MessageResourceServer extends ServerResource implements 
MessageResource {
        
        public static String getHTTPCommand() {
                return "message";
        }
        
        @Override
        public String retrieve(long aSequence) {
                return "Here are contents of message " + aSequence;
        }
}

MessageExtractorRestletTest.java

public class MessageExtractorRestletTest {
        
        private static MessageExtractorRestlet testMessageExtractorRestlet;

        @BeforeClass
        public static void setUpBeforeClass() throws Exception {
                
                testMessageExtractorRestlet = new MessageExtractorRestlet();
                testMessageExtractorRestlet.start();
        }

        @AfterClass
        public static void tearDownAfterClass() throws Exception {
                testMessageExtractorRestlet.stop();
        }

        @Test
        public void testDefault() {
                
                ClientResource client_resource = new 
ClientResource("http://localhost:8182/message";);
                
                MessageResource message_resource = 
client_resource.wrap(MessageResource.class);
                String message = message_resource.retrieve(10203);
                
                assertEquals("Here are contents of message 10203", message);    
        
        }       
}

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2859507

Reply via email to