Announcement

Collapse
No announcement yet.

Eigene Java-Archive außerhalb WEB-INF/lib installieren?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Eigene Java-Archive außerhalb WEB-INF/lib installieren?

    Meine gesamte Web-Anwendung besteht zu 50% aus Java-Archiven, die sich nicht (oder nur sehr, sehr selten) ändern (JDBC-Treiber, Kryptografieklassen, AXIS u.ä.), und zu 50% aus eigener Geschäftslogik. Die Geschäftslogik wird regelmäßig ausgetauscht, aber die konstanten Bibliotheken blähen die WAR-Datei gewaltig auf, so daß (derzeit) 16 MByte zusammenkommen, die über eine ISDN-Leitung übertragen werden müssen.
    Frage: Gibt es einen brauchbaren Weg, die "konstanten" Klassen statisch auf dem Tomcat beim Kunden zu installieren und aus der WAR-Datei herauszulassen?

  • #2
    Du kannst Library-JARs im Ordner $CATALINA_BASE/shared/lib ablegen. Dort stehen sie dann jeder Webapp zur Verfügung, ohne dass Du sie ins WAR reinpacken musst. Siehe dazu http://tomcat.apache.org/tomcat-5.5-...der-howto.html.

    Gruß
    Hendrik

    Comment


    • #3
      Danke, Hendrik,
      im Prinzip hast Du Recht, aber Tomcat 6 hat keinen Shared Loader mehr. Da müßte ich wohl alles in die Pfade für den Common Loader packen?
      Für ideal hielte ich eine Verweismöglichkeit in meiner Anwendung - z.B. in der web.xml oder der context.xml - auf ein Verzeichnis mit zusätzlichen Bibliotheken. Aber das scheint es wohl nicht zu geben...

      Comment


      • #4
        Man sieht, Tomcat 6 ist bei mir noch nicht wirklich angekommen. Vielleicht hätte ich mal in die aktuelle Doku gucken sollen ;-).

        Es gibt aber noch eine andere Möglichkeit als den Common Loader wenn ich es recht überblicke: Gemäß http://tomcat.apache.org/tomcat-6.0-...ig/loader.html kannst Du anstelle von org.apache.catalina.WebappLoader auch einen eigenen Loader benutzen, der analog zu org.apache.catalina.loader.VirtualWebappLoader (nicht für den Produktiveinsatz!) Klassen aus zusätzlichen Verzeichnissen laden kann. Den müsstest Du nur noch schreiben...

        Comment


        • #5
          Danke, ich schaue mir das mal an und werde - so mir mein Chef Zeit läßt - solche einen ClassLoader mal selbst versuchen.

          Anmerkung: Ich hatte zwischenzeitlich versucht, den SharedLoader zu reaktivieren, genau so, wie dies im Tomcat 5.5 beschrieben war. Die Anwendungen liefen dann auch, allerdings gab es zu Laufzeit immer wieder Fehler, die nach Fehlern beim Laden der Klassen aussahen. Als ob der SharedLoader eine einmal für eine Anwendung geladene Klasse in einer zweiten Anwendung nicht noch einmal lud (und initialisierte).

          Nach knapp zwei Wochen habe ich die Versuche abgebrochen und bin auf herkömmliche Installation zurückgegangen.

          Comment

          Working...
          X