Martin Jung: das eine JavaBean läuft, ein anderes mit gleichem Inhalt nicht

Beitrag lesen

Hi,

Un was ist mit unseren unternehmensinternen Spezifikationen? Müssen die sich denen von Tomcat unterordnen?

Was meinst Du mit 'unternehmensinternen Spezifikationen'?

Wie in der Doc beschrieben, habe ich in der Datei TOMCAT_HOME/conf/jk/mod_jk.conf das hier eingetragen:
JkMount /keychain/buypower/support_tools/*.jsp ajp13

Dazu kann ich mangels eigener Erfahrung auf die Schnelle Nichts sagen.

Darüber hinaus habe ich wie in der Doc geschildert eine Datei namens apps.xml unter TOMCAT_HOME/conf erstellt und darin folgendes eingetragen:
<?xml version="1.0" encoding="ISO-8859-1"?>
<webapps>
    <!-- Special rules for the admin webapplication -->

<!-- Change "trusted" to true in order to run the admin -->
    <Context path="/support_tools"
             docBase="/keychain/buypower/support_tools"
             reloadable="true"
             trusted="false" >
            <SimpleRealm filename="conf/users/admin-users.xml" />
    </Context>
</webapps>

Auch hier habe ich keine praktische Erfahrung - hier geht es aber auf den ersten Blick nur um User-spezifische Zugriffsrestriktionen auf die Web-Appliaktion.

Reicht das nicht aus, um Tomcat mitzuteilen, dass meine Applikation in diesen Ordnern liegt? Was muss man noch eintragen, um eine neue Web-Applikation zu erzeugen?

Vor der direkten Antwort eine Frage: Funktioniert denn Deine Anwendung mit Tomcat im standalone-Modus? Wenn ja, ist die Umsetzung meiner folgenden Vorschläge nicht notwendig, und es sieht in der Tat so aus, als wäre das Problem in Deiner 'Zusatz'-Konfiguration und/oder der Apache-Anbindung zu suchen. Da kann ich aber leider nicht helfen.

Nun zur Frage - Umgekehrt wird ein Schuh daraus:
Im einfachsten Fall muss Du überhaupt kein Konfigurations-File anfassen bzw. editieren.
Per Default interpretiert Tomcat jeden TopLevel-Ordner _unter_ dem Ordner <webapps> als eine individuelle Web-Applikation, d.h. alles unter dem dort liegenden WEB-INF/classes bzw. WEB-INF/lib gehört dann _automatisch_ zum classpath dieser WebAnwendung.
Das kannst Du schnell verfizieren. Generiere <TOMCAT_HOME/webapps/test> und lege darin eine <hallo.html> mit Inhalt Deiner Wahl. Starte Tomcat standalone und rufe http://localhost/test/hallo.html (vorausgesetzt, der <Http1xConnector> aus der <conf/server.xml> hat Port-Wert 80) auf. Wird die Datei angezeigt, ist alles bis hierher ok (d.h., Tomcat 'kennt' die Webanwendung <test>, ohne dass diese in irgendeiner Konfigurations-Datei explizit registriert wurde). Dann erweitere das Beispiel, indem Du Deine JSP-Datei in diese Test-Anwendung kopierst (vielleicht zuerst ohne Zugriff auf die Beans), dann die Beans nach <TOMCAT_HOME/webapps/test/WEB-INF/classes> usw.. So, wenn immer noch alles funktioniert, nachdem der Aufbau der <test>-Applikation bis auf den Namen _identisch_ mit der bisher fehlerhaften <kexchain>-Applikation ist, bist Du wieder ein Stück weiter, dann liegt es nämlich an der 'Zusatz'-Konfiguration und/oder der Apache-Anbindung (s.o.).

Wenn ich WEB-INF unter keychain lege, funktionieren die Skripts auch nicht. Ich sehe jetzt keinen Grund dafür, warum auf einmal beide JavaBeans nicht funktionieren.

Das ist zu ungenau. Dein Problem scheint so subtil, dass es bei der Beschreibung wirklich auf Exaktheit ankommt. Welche _Scripts_ funktionieren jetzt nicht - ich dachte, es geht um JSPs und JavaBeans?

JSPs im Order TOMCAT_HOME/webapps/test klappen, aber sobald ich sie in meinen kexchain ordner lege, geht gar nichts mehr.

Welche JSPs? Irgendwelche oder _die_ eine (siehe Beispiel oben)?

Hm, ich spiele ernsthaft mit dem Gedanken, meinen Kater einzuschläfern...

Der kann nun wirklich nichts dafür...

Viele Grüße,
Martin Jung