Eclipse: Einbinden externer Projekte in Web-Projekt

C

Conti

Gast
Hallihallo Leute,

jetzt hab ich wieder ein Problem, dass ich nicht ganz verstehe.

Beispiel 1:
Ein einfaches Java Projekt "Proj1" und ein zweites einfaches Java Projekt "Proj2"
Im BuildPath von "Proj1" binde ich das zweite Projekt ein und rufe dann einfach eine Klasse von "Proj2" auf. Also zuerst instanziieren udn dann eine Methode der instanziierten Klasse aufrufen.
Alles funktioniert wunderbar!

Beispiel 2:
Ich habe ein Dynamic Web Project "Proj1" und ein zweites einfaches bzw. web-Projekt (spielt keine Rolle - hab beides ausprobiert!)
Gehe vor, wie bei Beispiel1 und obwohl ich kompilieren kann und auch Code-Completition funktioniert bekomme ich zur Laufzeit folgenden Fehler:
javax.servlet.ServletException: de/proj2/pologin/bean/POUser
javax.faces.webapp.FacesServlet.service(FacesServlet.java:323)

root cause:
java.lang.NoClassDefFoundError: de/proj2/pologin/bean/POUser

Warum funktioniert das bei Web-Projekten nicht, was bei normalen Java-Projekten einwandfrei funktioniert?
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
was zum Himmel ist ein 'Java Projekt' oder ein 'BuildPath',
beziehst du dich auf eine konkrete Entwicklungsumgebung (IDE) wie Eclipse?
in IDEs sorgen die IDE-Konfigurationen, dass beim Start aus der IDE heraus alles rund läuft

ein Web-Projekt zu starten kann aber oft was anderes sein, dort werden allgemeine Server initialisiert, die ihre Informationen zum Klassen und Libraries aus XML-Konfigurations-Dateien ziehen und ähnlich verrücktes,
auch wenn du allgemeine Libraries wie j2ee.jar in dein IDE-Projekt eingebunden hast, reicht das normalerweise nicht für alle Zeit,
ein Web-Server hat noch ein lib-Verzeichnis mit eigenen jars usw., da muss vielleicht ein jar des anderen Projektes hin,

komplizierte Sache in jedem Fall, im Detail kann ich da nicht helfen, außer dich zumindest zu ermutigen, den Namen der IDE in den Titel des Themas einzubauen, falls meine Vermutungen richtig sind
 
M

maki

Gast
Warum funktioniert das bei Web-Projekten nicht, was bei normalen Java-Projekten einwandfrei funktioniert?
Weil WARs andere Tiere sind als JARs ;)
War nie vorgesehen mehrere WebApps zu einer durch den Server kombinieren zu lassen, du müsstest deine WebAps erst mergen...
 
C

Conti

Gast
Hallo Leute,

natürlich habe ich von Eclipse gesprochen. Sorry! Hätte detailierter schreiben sollen. (Problem: Ich bin noch nicht lange beim Programmieren mit dabei!)

Also ich benutze Eclipse Galileo (Server Tomcat 6) und erstelle in Beispiel 1 ein "Java Project" und ich Beispiel 2 "Dynamic Web Project".
Was da genau im Hintergrund passiert...muss ich zugeben, weiss ich nicht. Fakt ist, dass die Ordnerstruktur unterschiedlich ist und ich beim WebProject Deployment descriptor und die nötigen WEB-INF Ordnerstrukturen habe usw.
Ich habe im lib-Ordner eine Palette von JAR-Dateien, die ich aber auch ins zweite Projekt einbinde. Hat das Problem aber nicht gelöst. Ebendso auch mit dem Deployment-Descriptor.

Ich habe auch keine WAR-Files aus den Projekten erstellt. Beide Projekte sind offen im Workspace.

Schon mal danke an euch für die Antworten!
 
C

Conti

Gast
Wie merged man zwei Projekte?
Vermute nämlich, dass zur Laufzeit nur das eine Projekt auf dem Server läuft, während der Server keine Kenntnis vom zweiten Projekt hat.
 
M

maki

Gast

KYLT

Mitglied
Den einzigen Umweg den du tätigen kannst, um z.B. Logic dahinter aufrufen zu können, ist die Entkoppelung der Logic in eine höhere Schicht. Hier wäre z.B. die Möglichkeit mittels EJB 3.1 eine Bean zu erstellen, die wärend der gesamten Laufzeit des Containers zur verfügung steht. Somit auch für mehrere Applikationen. Eine Andere Möglichkete währen Webserviceaufrufe für bestimmte Infos.

EDIT: Ich bin mir aber nicht sicher, ob das in ner Enterprise Application mögliche wäre, mit zwei Wars direkten zugriff zu tätigen... , ich habs zumindest noch nicht versucht.
 

mvitz

Top Contributor
Die beste Lösung in diesem Falle wäre, dein Java Projekt über Eclipse in ein JAR zu exportieren. DIeses JAR kopierst du dann in das WebProject in den Ordner: WebContent/WEB-INF/lib. Danach brauchst du auch die Abhängigkeit des Projektes nicht mehr.
 
C

Conti

Gast
Dann ist aber nix mehr mit Debuggen oder?


Die beste Lösung in diesem Falle wäre, dein Java Projekt über Eclipse in ein JAR zu exportieren. DIeses JAR kopierst du dann in das WebProject in den Ordner: WebContent/WEB-INF/lib. Danach brauchst du auch die Abhängigkeit des Projektes nicht mehr.
 

mvitz

Top Contributor
Doch, musst du nur zu der Lib noch die Sourcen hinzufügen. Nur eben mal in dem JAR Projekt Änderungen machen ohne ein neues JAR zu erzeugen funktioniert dann nicht mehr.
 
V

vokke

Gast
Hallo Conti,
ich hatte heute das gleiche Problem und war mir sicher, dass ich es auch schon einmal gelöst habe.

Hier ist die Lösung:
Du musst das externe Projekt noch in den "Java EE Module Dependencies" des Dynamic Web Projects verfügbar machen - dann werden die Klassen auch gefunden.

Ich hoffe, ich konnte Dir damit weiterhelfen.
Happy Coding,
Vokke
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S JSF Tomcat in Eclipse einbinden (JSF) Web Tier 0
E JSF 2.0 Wie Richfaces in Eclipse einbinden? Web Tier 25
G Konfigurationsproblem Eclipse/JSF Web Tier 0
T JSF in Eclipse mit Tomcat Web Tier 0
C JSF 2.0 mit Eclipse Web Tier 3
H JSP, Eclipse, Tomcat - Java Klasse wird nicht gefunden Web Tier 8
Kenan89 WebSocket in Eclipse Web Projekt implementieren Web Tier 19
L Web-Projekt Projekt in Eclipse classes Ordner? Web Tier 6
I cannot find FacesContext in Eclipse-JSF1.2 mit JBoss Web Tier 8
T Plugins für Eclipse Web Tier 9
P Eclipse zeigt Errors an, die auf Tomcat nicht auftreten Web Tier 2
E Glassfish, Eclipse + JavaserverPages Web Tier 6
A Beispiel wirft Fehler. JSF 2.0 / Tomcat / Eclipse Web Tier 2
J Tomcat-Server mit JSF auf Eclipse einrichten Web Tier 7
N JSF + Eclipse = Unmöglich?! Web Tier 7
C Eclipse mit JSF2.0 Web Tier 7
C Eclipse Galileo und jsf-api.jar 2.0 Web Tier 1
S Tomcat / Eclipse Probleme Web Tier 2
T Tomcat Projekt ohne Eclipse starten Web Tier 11
reibi JSF-Project in Eclipse Galileo Web Tier 2
T Servlet deployment mit eclipse Web Tier 5
N java bean in eclipse Web Tier 6
T Eclipse: Adden von projektspezifischen libs in web-inf/lib? Web Tier 4
B struts-blank, eclipse und tomcat6 konfigurieren Web Tier 7
T Ajax / Javascript Plugin für Eclipse Web Tier 1
M JSP und Eclipse Web Tier 4
L Eclipse WTP All-in-one Web Tier 3
G jsp validatoren in eclipse ausstellen Web Tier 2
M "Dynamic Web Project" unter Eclipse nicht vorhande Web Tier 2
J Wie Mouse Event in Servlet einbinden? Web Tier 1
L Servlet Java Entschlüsselungsprogramm in Webapplikation einbinden Web Tier 0
T JSF Cewolf (Chart) in JSF einbinden? Web Tier 8
M JSF JSP, Facelets und einbinden einer js-Datei Web Tier 2
T RichFaces einbinden Web Tier 4
S JSP HTML+CSS in JSP einbinden Web Tier 4
M JSP JSP in JSP mit refresh einbinden Web Tier 5
L Services in Tomcat einbinden? Web Tier 2
G JSP Schaubild in JSP einbinden Web Tier 17
N JSF jQuery einbinden Web Tier 3
D JSP, Java Applets einbinden Web Tier 2
0 JSF: css einbinden - Probleme Web Tier 2
aokai ExterneJS-JSP Seite einbinden Web Tier 2
F Java Applets in html einbinden Web Tier 10
A JDBC in Tomcat einbinden Web Tier 3

Ähnliche Java Themen

Neue Themen


Oben