# Source-Code vom Tomcat kompilieren lassen



## Olli123 (25. Mrz 2008)

Hallo Leute,

ich habe in Eclipse ein Java-Servlet erstellt.
Dieses befindet sich im folgenden Ordner:

"D:\Tomcat 5.0\webapps\watchcat\WEB-INF\classes"

Derzeit liegen hier^ sowohl die .class als die .java

Beim Aufruf von "http://localhost:8080/watchcat/watchcat?path=d" funktioniert das Servlet bereits einwandfrei.

Jetzt zu meinem Problem. Ich weiß, dass Tomcat die .java auch selbst kompilieren kann.
Das funktioniert jedoch bisher nicht. 

Fehlermeldungen:
type Exception report
message 
description The server encountered an internal error () that prevented it from fulfilling this request.
exception 
javax.servlet.ServletException: Wrapper cannot find servlet class Watchcat or a class it depends on....
root cause 
java.lang.ClassNotFoundException: Watchcat....

Ich muss hier die Versionen "jre1.5.0_12" und "Tomcat 5.0.25" benutzen, da diese auf allen Servern installiert sind.
Hat jemand eine Anleitung, welche Einstellungen gemacht werden müssen?


----------



## HLX (25. Mrz 2008)

Olli123 hat gesagt.:
			
		

> Jetzt zu meinem Problem. Ich weiß, dass Tomcat die .java auch selbst kompilieren kann.
> Das funktioniert jedoch bisher nicht.


Bislang ist mir nur eine Unterstützung für JSPs bekannt. Bin mir nicht sicher, ob man dem Tomcat einfach Servlet-Quellcode hinwerfen kann.



			
				Olli123 hat gesagt.:
			
		

> Ich muss hier die Versionen "jre1.5.0_12" und "Tomcat 5.0.25" benutzen, da diese auf allen Servern installiert sind.
> Hat jemand eine Anleitung, welche Einstellungen gemacht werden müssen?


Wenn überhaupt etwas kompiliert wird, geht das frühestens ab Tomcat 5.5. Bei Vorgängerversionen muss ein JDK vorhanden sein.


----------



## Guest (25. Mrz 2008)

HLX hat gesagt.:
			
		

> Bislang ist mir nur eine Unterstützung für JSPs bekannt. Bin mir nicht sicher, ob man dem Tomcat einfach Servlet-Quellcode hinwerfen kann.
> 
> Wenn überhaupt etwas kompiliert wird, geht das frühestens ab Tomcat 5.5. Bei Vorgängerversionen muss ein JDK vorhanden sein.



Hmm... da ist mir der Unterschied jetzt nicht klar. 
Kann ich die .java einfach in .jsp umbenennen? Meine .java ist doch ein Servlet, sobald ich die Klasse von HttpServlet ableite oder?

Habe nachgefragt und es ist natürlich auch ein JDK installiert auf den Servern.

Ich schätze mal, dass der tomcat nicht richtig konfiguriert ist, dass er automatisch die .jsp kompilieren kann?!
Wo muss ich denn z. B. den Path der javac.exe hinterlegen?


----------



## maki (25. Mrz 2008)

Tomcat wird keine "normalen" Servlets und Java Klassen kompilieren, nur diejenigen, welche übersetzte JSPs sind.

Ab Version 6 kann TC die selbst ohne JDK kompilieren, davor ist ein JDK nötig.


----------



## HLX (25. Mrz 2008)

JSP und Servlet sind zwei verschiedene Dinge. Servlets bestehen aus reinem Java und werden im Ordner WEB-INF/classes gehalten. JSPs enthalten in erster Linie Tags und werden beim übrigen WebContent (HTML-Seiten etc.) abgelegt. Sie können zwar auch Java-Code enthalten, was allerdings vermieden werden sollte. JSPs werden von der Servlet Engine in Servlet-Code übersetzt und anschließend kompiliert. Die Fähigkeit Servlets zu kompilieren könnte somit gegeben sein, aber wie gesagt - JSPs liegen an anderer Stelle und werden außerdem aus Prinzip als "Source" auf dem Server abgelegt, während dies für Servlets keine Selbstverständlichkeit ist.

Wenn ein JDK vorliegt muss die Umgebungsvariable JAVA_HOME auf den Installationsordner des JDK zeigen.



			
				maki hat gesagt.:
			
		

> Ab Version 6 kann TC die selbst ohne JDK kompilieren, davor ist ein JDK nötig.


Wie bereits geschrieben klappt das sogar schon ab 5.5.  :wink:


----------



## maki (25. Mrz 2008)

> Wie bereits geschrieben klappt das sogar schon ab 5.5. icon_wink.gif


Ok Ok... ab TC 5.5 

Nebenbei, es wäre imho falsch das TC anfängt "normale" Servlets und Javaklassen zu kompilieren.


----------



## Olli123 (25. Mrz 2008)

Danke euch beiden, für den kleinen JSP- und Servlet- Grundkurs  :###   :toll:


----------

