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 
> 
> 

Reply via email to