Hi Sean, I was able to reproduce the issue and fix the bug causing the ServerServlet to create an extra HTTP server connector if one was available on the classpath.
A workaround for beta 19 is to remove all HTTP server connector JARs from your Servlet classpath/libraries. I've also uploaded a new snapshot containing the fix. It is marked as beta 20 but only contains this fix: http://www.restlet.org/downloads/current.zip Best regards, Jerome > -----Message d'origine----- > De : news [mailto:[EMAIL PROTECTED] De la part de Sean Landis > Envoyé : mercredi 25 octobre 2006 22:45 > À : [email protected] > Objet : Address already in use (b19) > > I am having trouble transitioning to b19. I am using the > ServerServlet to > integrate with Tomcat. > > I have a class that extends Application and has the following: > > public JDomApplication(Context context) { > super(context); > } > > @Override public Restlet createRoot() { > // Create our restlets. > final Restlet sayHelloHandler = createSayHelloHandler(); > final Restlet sayGoodbyeHandler = createSayGoodbyeHandler(); > final Restlet failureHandler = createFailureHandler(); > final Restlet partialFailureHandler = > createPartialFailureHandler(); > final Restlet invalidDomHandler = createInvalidDomHandler(); > final Restlet xsdRestlet = new XsdRestlet(SCHEMA_PATH); > final Filter jdomFilter = new JDomFilter(NAMESPACE, > SCHEMA_PATH, true); > > // Create a root Router. > Router router = new Router(getContext()); > // Add the first level routing targets. > router.getScorers().add("/hello[/]*?$", xsdRestlet); > router.getScorers().add("hello/*", jdomFilter); > // Create the hello router. > Router helloRouter = new Router(getContext()); > jdomFilter.setNext(helloRouter); > // Attach the handlers. > helloRouter.attach("sayhello$", sayHelloHandler); > helloRouter.attach("saygoodbye$", sayGoodbyeHandler); > helloRouter.attach("failure$", failureHandler); > helloRouter.attach("partialfailure$", partialFailureHandler); > helloRouter.attach("invaliddom$", invalidDomHandler); > // Return the root router. > return router; > } > > When I try to access this service, I get the following > exception and trace: > > Oct 25, 2006 2:41:49 PM org.restlet.Restlet init > WARNING: Unable to start the Restlet > java.net.BindException: Address already in use > at java.net.PlainSocketImpl.socketBind(Native Method) > at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359) > at java.net.ServerSocket.bind(ServerSocket.java:319) > at java.net.ServerSocket.<init>(ServerSocket.java:185) > at java.net.ServerSocket.<init>(ServerSocket.java:97) > at > com.noelios.restlet.ext.simple.HttpServerHelper.start(HttpServ > erHelper.java > :54) > at org.restlet.Server.start(Server.java:265) > at org.restlet.Restlet.init(Restlet.java:117) > at org.restlet.Server.handle(Server.java:181) > at > com.noelios.restlet.impl.ServerHelper.handle(ServerHelper.java:96) > at > com.noelios.restlet.impl.http.HttpServerHelper.handle(HttpServ > erHelper.java: > 87) > at > com.noelios.restlet.ext.servlet.ServerServlet.service(ServerSe > rvlet.java:119) > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilt > er(ApplicationF > ilterChain.java:252) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli > cationFilterChai > n.java:173) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardW > rapperValve. > java:214) > at > org.apache.catalina.core.StandardValveContext.invokeNext(Stand > ardValveContext > .java:104) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel > ine.java:520) > at > org.apache.catalina.core.StandardContextValve.invokeInternal(S > tandardContext > Valve.java:198) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardC > ontextValve.j > ava:152) > at > org.apache.catalina.core.StandardValveContext.invokeNext(Stand > ardValveCon > text.java:104) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel > ine.java:520) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHost > Valve.java:137) > at > org.apache.catalina.core.StandardValveContext.invokeNext(Stand > ardValveCont > xt.java:104) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport > Valve.java:118) > at > org.apache.catalina.core.StandardValveContext.invokeNext(Stand > ardValveConte > xt.java:102) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValv > e.java:535) > at > org.apache.catalina.core.StandardValveContext.invokeNext(Stand > ardValveCont > ext.java:102) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel > ine.java:520) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEn > gineValve.j > ava:109) > at > org.apache.catalina.core.StandardValveContext.invokeNext(Stand > ardValveCon > text.java:104) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel > ine.java:520) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.jav > a:929) > at > org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter. > java:160) > at > org.apache.coyote.http11.Http11Processor.process(Http11Process > or.java:799) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandle > r.processC > onnection(Http11Protocol.java:705) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoi > nt.java:577) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run( > ThreadPool > .java:684) > at java.lang.Thread.run(Thread.java:595) > > > Any suggestions? > > Thanks, > Sean > >

