Win a copy of Mesos in Action this week in the Cloud/Virtualizaton forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Socket bind failed

 
Guy deLyonesse
Ranch Hand
Posts: 200
Eclipse IDE Java Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I know, seems simple, right?

If I run



I get no output. Good. So 8443 is NOT in use by any app.

So I start Tomcat.

SEVERE: Error starting endpoint
java.lang.Exception: Socket bind failed: [730048] Only one usage of each socket address (protocol/network address/port) is normally permitted.
at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:649)
at org.apache.tomcat.util.net.AprEndpoint.start(AprEndpoint.java:756)
at org.apache.coyote.http11.Http11AprProtocol.start(Http11AprProtocol.java:137)
at org.apache.catalina.connector.Connector.start(Connector.java:1095)
at org.apache.catalina.core.StandardService.start(StandardService.java:540)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Dec 15, 2011 10:58:10 AM org.apache.catalina.core.StandardService start
SEVERE: Failed to start connector [Connector[HTTP/1.1-8443]]
LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.lang.Exception: Socket bind failed: [730048] Only one usage of each socket address (protocol/network address/port) is normally permitted.
at org.apache.catalina.connector.Connector.start(Connector.java:1102)
at org.apache.catalina.core.StandardService.start(StandardService.java:540)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Dec 15, 2011 10:58:10 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 762 ms


And run



again and get this output:

TCP 0.0.0.0:8443 0.0.0.0:0 LISTENING 3608


My webapp times out when I try and run it.

So it seems like Tomcat is managing to listen on port 8443 but isn't actually binding it, so it's broken internally and times out when I do a request against it.

This is Windows 7 and Tomcat 6.

Any thoughts?

 
Rob Spoor
Sheriff
Pie
Posts: 20531
54
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Also try ports 8080, 8005 and 8009. Tomcat uses several ports by default: 8080 for HTTP requests, 8443 for HTTPS requests, 8005 for shutting down and 8009 for AJP - for allowing other browsers like Apache HTTPD and IIS to redirect requests to Tomcat.
 
Guy deLyonesse
Ranch Hand
Posts: 200
Eclipse IDE Java Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yeah those ports are all being successfully bound when Tomcat starts. It's only 8443 that has a problem.
 
Tim Holloway
Saloon Keeper
Pie
Posts: 18162
53
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If 8443 is available when Tomcat is down, and Tomcat says "only 1 user allowed", I'd look at the server.xml to see if 8443 is defined in more than one connector, causing Tomcat to attempt to set up 2 different listeners on port 8443.

8443 can be tricky, since in addition to specifying it as a primary (https) listening port, a number of other connectors get told to send secure requests to 8443. So not every reference to 8443 is a listener definition. It's only multiple listeners that you have to worry about.
 
Guy deLyonesse
Ranch Hand
Posts: 200
Eclipse IDE Java Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yeah I was looking at that too. In the fresh Tomcat install the secure Connector is actually commented out, and uncommenting it is the only change I made to the file. Here it is:

 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic