views:

274

answers:

1

I get the following error when trying to launch tomcat (6.0.20) from within eclipse (galileo)

SEVERE: Error initializing endpoint java.lang.Exception: Socket bind failed: [730014] The system detected an invalid pointer address in attempting to use a pointer argument in a call.
at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:623) at org.apache.coyote.http11.Http11AprProtocol.init(Http11AprProtocol.java:107) at org.apache.catalina.connector.Connector.initialize(Connector.java:1058) at org.apache.catalina.core.StandardService.initialize(StandardService.java:677) at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:795) at org.apache.catalina.startup.Catalina.load(Catalina.java:535) at org.apache.catalina.startup.Catalina.load(Catalina.java:555) 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.load(Bootstrap.java:260) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:412)

What on earth does this mean, and how can I fix it? I have searched for ages but with no success.

netstat reveals nothing running on any ports in the 8000 range, (all tomcat ports are there), and right-clicking the shortcut and selecting 'run as administrator' doesnt help :(

Tomcat is trying to use port 8080, so it cant be a permissions error with that port, and the 'The system detected an invalid pointer address in attempting to use a pointer argument in a call. ' Indicates that it is not a problem with duplicate things trying to access the same ports, but something much stranger.

A: 

Odds are:

1) You are already running another web sever on that port (8080?) in which case you should shut it down and then try restarting tomcat in Eclipse.

or

2) Eclipse is running as a non-root user and trying to bind to port 80. In that case, edit tomcat's conf/server.xml and change "80" to "8080" wherever you see it (2 or 3 places I think)

Asaph
OP might also want to consider that it's a copy of Tomcat that's already running, possibly one that didn't exit properly.
atk