Apache Tomcat als Worker unter Apache laufen -> Tomcat startet nicht mehr
-
Ziel:
JSP sollte auf einem Apache-Server zum Laufen gebracht werden. Allerdings nicht auf dem abgespeckten Apache Tomcat Webserver sondern am "Vollapache" - vor allem weil dort auch PHP (5.0.4) als Modul bereits läuft. Den Connector für Apache <-> Tomcat habe ich auch bereits.Versionen:
Apache 2.0.54
Apache Tomcat 5.5.9
Apache Tomcat Connector JK 1.2.10 <-> Apache 2.0.53Bisherige Vorgehensweise:
1. Apache installiert, konfiguriert, PHP installiert, konfiguriert, PEAR installiert (Okay)
2. Apache Tomcat installiert (Okay)
3. Die .so-Datei des Connectors in .dll umbenannt und in apache\modules\ kopiert (Okay)
4. Modul in apache\conf\httpd.conf eingetragen, auch die Tomcat-Konfigurationsdatei eingetragen:LoadModule jk_module modules/mod_jk.so Include C:/Server/tomcat/conf/auto/mod_jk.conf
(Okay)
Hier laufen sowohl Apache als auch Apache Tomcat noch. Das ändert sich jedoch sobald ich den Tomcat an Apache anhängen will:
5. tomcat\conf\server.xml angepasst, hinzufügen von:
// Direkt unter "<Server port="8005" shutdown="SHUTDOWN">" <Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" modJk="C:/Server/apache/modules/mod_jk.dll" /> // Direkt unter "<Host name="localhost" appBase="webapps" />" <Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" append="true" forwardAll="false" modJk="C:/Server/apache/modules/mod_jk.dll" />
Alles laut Anleitung (Mir kam es spansich vor, dass hier tomcat4 im Pfad ist, aber auch eine Änderung auf tomcat5 hat nichts gebracht.
6. tomcat\conf\jk\workers.properties gefüllt mit:
# BEGIN workers.properties # Definition for Ajp13 worker worker.list=ajp13 worker.ajp13.port=8009 worker.ajp13.host=localhost worker.ajp13.type=ajp13 # END workers.properties
Eigentlich sollte beim nächsten Start von Tomcat die tomcat\conf\auto\mod_jk.conf geschrieben werden. Daraufhin kann ich Apache neu starten welcher dann Tomcat als Worker anerkennt. Doch stattdessen entschließt sich der Tomcat beim Start ohne weitere Fehlermeldungen wieder zu beenden - und nicht zu laufen.
Ausschlaggebend scheint Punkt 5 zu sein, mache ich diesen Rückgängig indem ich die Original server.xml einspiele läuft der Tomcat wieder (natürlich nur solo).
In den Logs des Tomcats findet man in stderr.log und catalina.log viele Einträge dieser Art:
23.04.2005 01:18:52 org.apache.tomcat.util.digester.Digester startElement SCHWERWIEGEND: Begin event threw exception java.lang.ClassNotFoundException: org.apache.ajp.tomcat4.config.ApacheConfig at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:204) at org.apache.tomcat.util.digester.Rule.begin(Rule.java:152) at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1275) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1561) at org.apache.catalina.startup.Catalina.load(Catalina.java:473) at org.apache.catalina.startup.Catalina.load(Catalina.java:509) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:243) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:408)
Scheinbar werden bestimmte Klasse nicht gefunden. Ich habe die JAVA_HOME-Umgebugnsvariable allerdings wie in der Anleitung beschrieben auf das Hauptverzeichnis der JRE gesetzt:
JAVA_HOME=C:\Server\java\jre
Auch das Setzen von JAVA_HOME auf das JDK-Verzeichnis hat nichts gebracht. Das JDK wie auch die JRE sind auf dem neuesten Stand (1.5 Update 2) - allerdings in der Standard Edition - wird hier die Enterprise Edition benötigt?
Hoffe mir kann jemand helfen
MfG SideWinder
-
Meine tomcat/conf/server.xml sieht folgendermaßen aus:
<Server port="8005" shutdown="SHUTDOWN"> [b]<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" modJk="C:/Server/apache/modules/mod_jk.dll" />[/b] <GlobalNamingResources> <!-- Used by Manager webapp --> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <Service name="Catalina"> <Connector port="8080" /> <!-- This is here for compatibility only, not required --> <Connector port="8009" protocol="AJP/1.3" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" /> <Host name="localhost" appBase="webapps" /> [b]<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" append="true" forwardAll="false" modJk="C:/Server/apache/modules/mod_jk.dll" />[/b] </Engine> </Service> </Server>
Von mir hinzugefügte Zeilen sind fett.
MfG SideWinder
-
Warum hollst du dir nicht alles fertig bei www.apchefriends.de
-
Weil ich von "Wir haben alles für dich bereits zusammengeflickt"-Paketen aus Prinzip wenig halte
BTW: Gibts die neueste Version von Tomcat gar nicht per XAMP-Install.
MfG SideWinder
-
Es ist nichts zusammengeflickt.
Die Packete sind fast perfekt. Zumindest für Windows.
Man kann auch selbst noch daran herumschrauben und es wird nichts installiert was man nicht auch händisch und sehr leicht wieder löschen kann.
Insbesondere der Tomcat ist ansonst nicht einfach zu installieren.
-
BTW: Gibts die neueste Version von Tomcat gar nicht per XAMP-Install.
Selbst wenn, möchte ich es gerne händisch hinbekommen - trotzdem danke.
MfG SideWinder