2016-04-20 10 views
0

Ich arbeite derzeit an einer EAR-Anwendung, die ein WEB-Projekt und ein EJB-Projekt enthält. Um an Eclipse mit lokalen Einstellungen zu arbeiten, mache ich so viele Build-Pfad-Setups und alle. Alle diese Buildpfade werden in .classpath des Projekts angezeigt.Verwendung und Bedeutung von .Classpath in der Anwendung EAR

Jetzt, wenn ich das EAR exportieren und auf dem Server bereitstellen, funktioniert alles auf dem Server. Mein Zweifel ist, wie weiß Server über meine lokalen Systempfade, die in .classpath meines Projekts vorhanden sind. Bedeutet es, dass .classpath zur Laufzeit keine Bedeutung hat?

Bitte erläutern.

Antwort

2

.classpath Datei ist Eclipse spezifisch, es wird nicht mit der EAR gebündelt werden. Eclipse verwendet es, um die classpath für das Projekt festzulegen.

Eine EAR hat eine wohldefinierte Struktur und der Servlet-Container versteht diese Struktur, indem er seine Kenntnisse in der EAR-Datei verwendet und Klassen extrahiert, die in der Laufzeit geladen werden.

Offensichtlich hat der Server keine Kenntnis von Ihrer lokalen Umgebung. Eine EAR- (oder WAR- oder JAR-) Datei ist eine einfache Archivdatei (mit einigen Spezifikationen oder der Reihenfolge der Dateien und allen). Sie können es mit einem beliebigen Dienstprogramm (z. B. 7zip) entpacken. Überprüfen Sie die Struktur des gepackten EAR, damit Sie besser verstehen, was zu Ihrem Server gehört.

0

Hinzufügen zu was @ 11. Dimension gesagt, .classpath hat keine Bedeutung zur Laufzeit. Es wird nur verwendet, um die "Build" -Pfade zu definieren - welche Jars, Bibliotheken usw. Ihr Code zur Kompilierungszeit benötigt.

Runtime Abhängigkeiten sind völlig verschieden und behandelt durch -
1. Inhalt MANIFEST.MF Datei
2. Inhalt WEB-INF/lib Verzeichnis Ihrer WAR
3. Server-Laufzeit - das mit dem Anwendungsserver verpackt kommt Sie verwenden - websphere .