Da ich nichts Vergleichbares auf Deutsch gefunden habe, dachte ich mir, ich schreibe mal einen kleinen Absatz dazu. Es ist denkbar einfach, Tomcat zu installieren, von daher wird die Anleitung auch recht kurz.

Grundsätzlich richtete ich mich nach dem Tutorial von malisphoto, welches jedoch erstens in Englisch ist und zweitens nicht alles so perfekt wie beschrieben funktionierte. Nun aber zum Kontext:

Als erstes müssen die richtigen Umgebungsvariablen gesetzt werden. Dabei kommt es auf die JAVA_HOME und die CATALINA_HOME Variablen an. Wer sich dabei nicht sicher ist, kann im Terminal einmal env eingeben und nachschauen, ob die genannten Variablen schon gebunden sind.
Ist dies nicht der Fall, muss die .bash_profile Datei angefasst oder kreiert werden.
Im Terminal:

nano ~/.bash_profile

und folgende Zeilen hinzufügen:

export JAVA_HOME=/Library/Java/Home
export CATALINA_HOME=/Library/Tomcat/Home

Terminal neustarten und mittels env prüfen, ob die entsprechenden Variablen gesetzt sind.

Nun Tomcat downloaden, und zwar die Tomcat 6 Binary Distribution Core tar.gz.

Ich habe den Weg der oben genannten Website gewählt und einen Tomcat-Ordner direkt in /Library gemacht, im Prinzip ist es aber egal, wo er angelegt wird, wichtig dabei ist nur, dass das CATALINA_HOME dann entsprechend abgeändert wird.

cd /Library
mkdir Tomcat
cd Tomcat
tar -xvzf ~/Downloads/apache-tomcat-6.0.x.tar.gz
ln -sfhv apache-tomcat-6.0.x Home

Letzteres kreiert einen Link mit dem Namen “Home”, welcher immer wieder mit der aktuellen Tomcat-Version geupdated werden kann.

Als nächstes geht man in die User-Konfiguration und fügt sich selbst hinzu:

cd /Library/Tomcat/Home/conf
nano tomcat-users.xml

In dieser XML-Datei fügt man vor dem folgende drei Zeilen ein:

<role rolename="admin"/>
<role rolename="manager"/>
<user username="USER" password="PASSWORD" roles="admin,manager"/>

Wobei USER und PASSWORD entsprechend angepasst werden sollten.

Nun kann man Tomcat starten und nachschauen, ob alles richtig funktioniert.

cd /Library/Tomcat/Home/bin
rm *.bat
./startup.sh

Zeile 2 entfernt nur alle nicht notwendigen .bat-Dateien. Als nächstes sollte in den Log geschaut werden, ob etwaige Fehlermeldungen entstanden sind:

cd /Library/Tomcat/Home/logs
less catalina.out

Ansonsten kann man jetzt über http://localhost:8080/ den eben eingeschalteten Tomcat aufrufen.

Um Tomcat wieder auszuschalten, gibt man Folgendes im Terminal ein:

cd /Library/Tomcat/Home/bin
./shutdown.sh

Das war es dann auch schon.

Tagged with:
 

2 Responses to Apache Tomcat 6 auf Mac OS 10.6 installieren.

  1. Marcel sagt:

    Hallo,

    ich habe Tomcat nach der oben beschriebenen Anleitung installiert. Wenn ich für die Fehlerprüfung die Datei “catalina.out” aufrufe, erscheint folgender Text.

    28.01.2012 17:59:13 org.apache.catalina.core.AprLifecycleListener init
    INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
    28.01.2012 17:59:13 org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["http-bio-8080"]
    28.01.2012 17:59:13 org.apache.coyote.AbstractProtocol init
    SCHWERWIEGEND: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"]
    java.net.BindException: Address already in use :8080
    at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:391)
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:554)
    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:409)
    at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:956)
    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:781)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:595)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:620)
    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:281)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)
    Caused by: java.net.BindException: Address already in use
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
    at java.net.ServerSocket.bind(ServerSocket.java:328)
    at java.net.ServerSocket.(ServerSocket.java:194)
    at java.net.ServerSocket.(ServerSocket.java:150)
    at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
    at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:378)
    … 17 more
    28.01.2012 17:59:13 org.apache.catalina.core.StandardService initInternal
    SCHWERWIEGEND: Failed to initialize connector [Connector[HTTP/1.1-8080]]
    org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]]
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
    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:781)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:595)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:620)
    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:281)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)
    Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:958)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    … 12 more
    Caused by: java.net.BindException: Address already in use :8080
    at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:391)
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:554)
    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:409)
    at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:956)
    … 13 more
    Caused by: java.net.BindException: Address already in use
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
    at java.net.ServerSocket.bind(ServerSocket.java:328)
    at java.net.ServerSocket.(ServerSocket.java:194)
    at java.net.ServerSocket.(ServerSocket.java:150)
    at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
    at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:378)
    … 17 more
    28.01.2012 17:59:13 org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
    28.01.2012 17:59:13 org.apache.coyote.AbstractProtocol init
    SCHWERWIEGEND: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-8009"]
    java.net.BindException: Address already in use :8009
    at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:391)
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:554)
    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:409)
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:956)
    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:781)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:595)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:620)
    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:281)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)
    Caused by: java.net.BindException: Address already in use
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
    at java.net.ServerSocket.bind(ServerSocket.java:328)
    at java.net.ServerSocket.(ServerSocket.java:194)
    at java.net.ServerSocket.(ServerSocket.java:150)
    at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
    at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:378)
    … 16 more
    28.01.2012 17:59:13 org.apache.catalina.core.StandardService initInternal
    SCHWERWIEGEND: Failed to initialize connector [Connector[AJP/1.3-8009]]
    org.apache.catalina.LifecycleException: Failed to initialize component [Connector[AJP/1.3-8009]]
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
    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:781)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:595)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:620)
    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:281)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)
    Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:958)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
    … 12 more
    Caused by: java.net.BindException: Address already in use :8009
    at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:391)
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:554)
    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:409)
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:956)
    … 13 more
    Caused by: java.net.BindException: Address already in use
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
    at java.net.ServerSocket.bind(ServerSocket.java:328)
    at java.net.ServerSocket.(ServerSocket.java:194)
    at java.net.ServerSocket.(ServerSocket.java:150)
    at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
    at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:378)
    … 16 more
    28.01.2012 17:59:13 org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 864 ms
    28.01.2012 17:59:13 org.apache.catalina.core.StandardService startInternal
    INFO: Starting service Catalina
    28.01.2012 17:59:13 org.apache.catalina.core.StandardEngine startInternal
    INFO: Starting Servlet Engine: Apache Tomcat/7.0.25
    28.01.2012 17:59:13 org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deploying web application directory /Library/Tomcat/apache-tomcat-7.0.25/webapps/docs
    28.01.2012 17:59:14 org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deploying web application directory /Library/Tomcat/apache-tomcat-7.0.25/webapps/examples
    28.01.2012 17:59:14 org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deploying web application directory /Library/Tomcat/apache-tomcat-7.0.25/webapps/host-manager
    28.01.2012 17:59:14 org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deploying web application directory /Library/Tomcat/apache-tomcat-7.0.25/webapps/manager
    28.01.2012 17:59:14 org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deploying web application directory /Library/Tomcat/apache-tomcat-7.0.25/webapps/ROOT
    28.01.2012 17:59:14 org.apache.catalina.startup.Catalina start
    INFO: Server startup in 972 ms
    28.01.2012 17:59:14 org.apache.catalina.core.StandardServer await
    SCHWERWIEGEND: StandardServer.await: create[localhost:8005]:
    java.net.BindException: Address already in use
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
    at java.net.ServerSocket.bind(ServerSocket.java:328)
    at java.net.ServerSocket.(ServerSocket.java:194)
    at org.apache.catalina.core.StandardServer.await(StandardServer.java:422)
    at org.apache.catalina.startup.Catalina.await(Catalina.java:728)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:674)
    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:322)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)
    28.01.2012 17:59:14 org.apache.coyote.AbstractProtocol pause
    INFO: Pausing ProtocolHandler ["http-bio-8080"]
    28.01.2012 17:59:14 org.apache.coyote.AbstractProtocol pause
    INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
    28.01.2012 17:59:14 org.apache.catalina.core.StandardService stopInternal
    INFO: Stopping service Catalina
    28.01.2012 17:59:14 org.apache.coyote.AbstractProtocol stop
    INFO: Stopping ProtocolHandler ["http-bio-8080"]
    28.01.2012 17:59:14 org.apache.coyote.AbstractProtocol destroy
    INFO: Destroying ProtocolHandler ["http-bio-8080"]
    28.01.2012 17:59:14 org.apache.coyote.AbstractProtocol stop
    INFO: Stopping ProtocolHandler ["ajp-bio-8009"]
    28.01.2012 17:59:14 org.apache.coyote.AbstractProtocol destroy
    INFO: Destroying ProtocolHandler ["ajp-bio-8009"]

    Das Port 8080 kann wohl nicht richtig angesprochen werden. Woran kann das liegen? Kann mir jemand helfen?

    Vielen Dank für die Mühe.

    Marcel

  2. marcel sagt:

    Hallo Marcel,

    wichtig bei dieser Meldung ist “Caused by: java.net.BindException: Address already in use”.
    Irgendein anderes Programm bzw. ein anderer Prozess benutzt schon den Port 8080. Beende diesen und es funktioniert.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>