# Externe Bibliotheken in war-Datei angeben



## guni (5. Jan 2010)

Hallo,

taste mich gerade nach der learning-by-doning-Methode an Servlets heran.
Wobei ich zur Zeit eher doing als learning praktiziere.

Also:
hab mir einen Tomcat runtergeladen und gestartet.
dann in Eclipse ein dynamisches Web-Projekt erstellt, darin ein Http-Servlet geschrieben das in der doGet-Methode ein bisschen Html-Code über den PrintWriter des response-Objektes schreibt (Hello World).
Hab das Ganze als war-Datei exportiert (in mein webapps-Verzeichnis) und konnte mein Servlet auch problemlos starten.

Natürlich will ich nicht bei meinem HelloWorld bleiben; in meinem nächsten Schritt habe ich in meinem Servlet jar-Dateien, die ich aus einem ANDEREN webapp-Verzeichnis einbinden muss (beziehungsweise jar-Dateien aus dem lib-Verzeichnis von tomcat).

Hab jetzt in meinem dynamischen Projekt einen Ordner META-INF gefunden in dem eine Manifest.mf existiert.

Bin also einfach mal davon ausgegangen, dass ich hier unter Classpath nur die Klassen eintragen muss (wie auch bei einer jar-Datei) und hab zur Sicherheit mal den absoluten Pfad angegeben.

Leider kommen aber bei einem neuen deploy lauter Class-Not-Found-Errors.
Was mache ich da falsch?!

Danke für eure Tipps,

mfg - guni


----------



## mvitz (5. Jan 2010)

Die jar Datei unter "WebContent/WEB-INF/lib" ablegen. Nichts in meta-inf oder die manifest.mf eintragen.


----------



## guni (5. Jan 2010)

heißt das ich muss meine jar Dateien in jedes Projekt extra kopieren?!

mfg, guni


----------



## guni (5. Jan 2010)

ist das common practice?


----------



## mvitz (5. Jan 2010)

Ja, dann müsstest du die Dateien in jedes Projekt kopieren.

Andere Möglichkeiten wären:

- Benutzung von Maven
- Einbinden der Jar Dateien in Eclipse über Classpath (Add External JAR) und das JAR File als "Exportierbar" anklicken (wobei ich mir da nicht sicher bin, ob man dann den Tomcat über Eclipse starten kann und alles trotzdem funktioniert). Dann steht allerdings der Verweis zu dem Jar als absoluter Pfad in der Projektkonfiguration (d.h. ist eigentlich nur sinnvoll, wenn du alleine an so einem Projekt arbeitest)

Da Festplattenspeicher heutzutage allerdings massig vorhanden ist, kopiere ich die Jars einfach bei jedem Projekt wo ich sie brauche in das WEB-INF/lib . Damit hat man afaik am wenigsten Ärger.


----------



## guni (5. Jan 2010)

ok. danke für den Tipp.
Werd das dann mal ausprobiern ;-)

mfg, guni


----------



## HLX (6. Jan 2010)

rechte Maustaste auf Projekt --> Properties --> Java EE Module Dependencies.

Hier gibst du deine JARs und abhängigen Java-Projekte an. Sie werden dann sowohl vom Tomcat berücksichtigt als auch beim Exportieren ins WAR überführt. Im Build-Path brauchst du nichts anzugeben.


----------



## homer65 (6. Jan 2010)

Der Tomcat hatt auch ein /lib Verzeichnis in das man jar Dateien stellen kann, die sich alle Projekte teilen.


----------



## guni (7. Jan 2010)

danke für eure Antworten.
habe den rat von HLX befolgt - die jars wurden beim deploy in das lib-verzeichnis mit kopiert.

mfg, guni


----------

