Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tomcat7 bind to port 80 fails in Ubuntu 14.04LTS

I've got a problem with my tomcat7 installation on a newly updated Ubuntu system. Ever since the update to 14.04 LTS, tomcat refuses to start on port 80 with an error that I cannot solve, nor find anything on how to fix it:

    Information: Initializing ProtocolHandler ["http-bio-80"] Apr 24, 2014 4:39:37 PM org.apache.coyote.AbstractProtocol init Schwerwiegend: Failed to initialize end point associated with ProtocolHandler ["http-bio-80"] java.net.SocketException: Datei oder Verzeichnis nicht gefunden     at java.net.PlainSocketImpl.socketBind(Native Method)     at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)     at java.net.ServerSocket.bind(ServerSocket.java:376)     at java.net.ServerSocket.<init>(ServerSocket.java:237)     at java.net.ServerSocket.<init>(ServerSocket.java:181)     at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)     at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:397)     at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:640)     at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)     at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)     at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)     at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)     at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:813)     at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)     at org.apache.catalina.startup.Catalina.load(Catalina.java:638)     at org.apache.catalina.startup.Catalina.load(Catalina.java:663)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:606)     at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280)     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454) 

The thing is, I've done exactly what I've done in previous Ubuntus (was running 12.04 LTS), in short, edited the server.xml to port 80 and also changed authbind in /etc/default/tomcat7 to yes, so basically everything you have to do to run tomcat on port 80.

Doing those steps on a 12.04LTS works fine, just on the 14.04LTS it now throws this "file or directory not found" error.

Also when upgrading a 12.04LTS (on which tomcat runs fine on port 80) to 14.04LTS, it suddenly throws the error above, while all configuration are identical to what worked in 12.04LTS.

I hope anyone can help me fix this problem.

like image 423
JS16 Avatar asked Apr 24 '14 15:04

JS16


People also ask

How do I host my Tomcat website on port 80?

The simple answer is to edit server. xml (under your Tomcat's conf/ directory) find the <Connector> entry with protocol="HTTP/1.1" and change port="8080" to port="80".

How do I find my Tomcat port number?

1) The default port number of Tomcat is 8080. On a server, if another application occupies port 8080, Tomcat will fail to be started normally, in which case you have to configure a new port for Tomcat. 2) If a number of Tomcats run on a server, then you have to configure a separate port for each Tomcat.


1 Answers

Following works:

apt-get install authbind

First, set AUTHBIND=yes in /etc/default/tomcat7 file

sudo touch /etc/authbind/byport/80 sudo chmod 500 /etc/authbind/byport/80 sudo chown tomcat7 /etc/authbind/byport/80 

There was a reference URL here, but the website has been hacked (marked as unsafe in Edge, and Chrome prompts me to install a browser extension).

like image 166
Chetan Avatar answered Oct 13 '22 03:10

Chetan