Wo sind die Servlet-Klassen?
Wo sind die Servlet-Klassen?
Hi,
ich bin immer noch am Servlet backen für Tomcat.
Mitlerweile läuft Tomcat und ich möchte meine Servlets zum laufen bringen, aber jetzt gibts was neues zum kotzen
Mein Java-Compiler hat die servlet-Klassen nicht.
Ich habe das Java Packet j2sdk-1_4_2_06-linux-i586.bin von Sun runtergeladen und wie unter http://www.debianforum.de/wiki/JavaPackageGenerator beschrieben in ein Debian-Packet gewandelt und installiert. Soviel aus der Doku hervorgeht sollte da doch alles drin sein ( sogar die J2EE Klassen???? ) aber jetzt gibt der Compiler mir hier aus, dass er die Packages javax.servlet.http nicht kennt.
Muss ich mir die gesondert runterladen und direkt installiern und wo?
Gruss Christian
ich bin immer noch am Servlet backen für Tomcat.
Mitlerweile läuft Tomcat und ich möchte meine Servlets zum laufen bringen, aber jetzt gibts was neues zum kotzen
Mein Java-Compiler hat die servlet-Klassen nicht.
Ich habe das Java Packet j2sdk-1_4_2_06-linux-i586.bin von Sun runtergeladen und wie unter http://www.debianforum.de/wiki/JavaPackageGenerator beschrieben in ein Debian-Packet gewandelt und installiert. Soviel aus der Doku hervorgeht sollte da doch alles drin sein ( sogar die J2EE Klassen???? ) aber jetzt gibt der Compiler mir hier aus, dass er die Packages javax.servlet.http nicht kennt.
Muss ich mir die gesondert runterladen und direkt installiern und wo?
Gruss Christian
- puddlejumper
- Beiträge: 58
- Registriert: 22.01.2005 00:29:52
Hallo Christian,
Im normalen Java SDK sind weder die Servlet-Klassen, noch die Enterprise Klassen enthalten.
Du bräuchtest wohl noch das JWSDK (java web service developement kit) oder evtl. müsste es auch reichen, wenn Du das servlet.jar aus den Tomcat-Verzeichnissen mit in den Classpath beim compilieren aufnimmst.
Gruss,
PuddleJumper.
Im normalen Java SDK sind weder die Servlet-Klassen, noch die Enterprise Klassen enthalten.
Du bräuchtest wohl noch das JWSDK (java web service developement kit) oder evtl. müsste es auch reichen, wenn Du das servlet.jar aus den Tomcat-Verzeichnissen mit in den Classpath beim compilieren aufnimmst.
Gruss,
PuddleJumper.
Hallo puddlejumper,
reicht es nicht wenn ich das servlet.jar in /usr/share/java lege?
Also offensichtlich funktioniert es nicht, denn ich habe es probiert und der Compiler hat es nicht gefunden. Was müsste ich den tun, wenn ich die J2EE und die J2ME-Klassen auch noch zur verfügung haben möchte?
Gruss Christian
reicht es nicht wenn ich das servlet.jar in /usr/share/java lege?
Also offensichtlich funktioniert es nicht, denn ich habe es probiert und der Compiler hat es nicht gefunden. Was müsste ich den tun, wenn ich die J2EE und die J2ME-Klassen auch noch zur verfügung haben möchte?
Gruss Christian
Du brauchst das J2EE SDK: http://java.sun.com/j2ee/1.4/download.html#sdk
- suntsu
- Beiträge: 2947
- Registriert: 03.05.2002 10:45:12
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: schweiz
-
Kontaktdaten:
imo brauchst du kein jwsdk, weil das für webservice da ist, und nicht für servlets.puddlejumper hat geschrieben:Hallo Christian,
Im normalen Java SDK sind weder die Servlet-Klassen, noch die Enterprise Klassen enthalten.
Du bräuchtest wohl noch das JWSDK (java web service developement kit) oder evtl. müsste es auch reichen, wenn Du das servlet.jar aus den Tomcat-Verzeichnissen mit in den Classpath beim compilieren aufnimmst.
Gruss,
PuddleJumper.
Es reicht imo wenn du servler.jar in den Pfad aufnimmst.
gruss
manuel
- puddlejumper
- Beiträge: 58
- Registriert: 22.01.2005 00:29:52
Ich muss gestehen, dass ich bei Java, Tomcat etc. bisher nicht nach existierenden Paketen gesucht habe. Die habe ich immer von "Hand" installiert (soll heissen unter /usr/local entsprechend entpackt/verlinkt...)hupfdule hat geschrieben:Als deb umwandeln wird wohl nicht sehr sinnvoll sein.
Aber jar-Dateien musst Du eh immer explizit in den Classpath aufnehmen, es sei denn, es laeuft ein Script etc. welches Jar-Files in einem Verzeichniss automatisch in den Classpath aufnimmt. (siehe NetBeans ext/lib etc.)
Gruss,
PuddleJumper.
- finupsen
- Beiträge: 1327
- Registriert: 21.04.2004 20:07:05
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
hallo,
exakt so, wie "suntsu" schreibt .....
Wenn du beim compilieren eine ClassNotFoundException o.ä. fliegt, musste die fehlenden
klassen javax.servlet.* usw.dem compiler mitteilen. Die tomcat klassen (JAR`s) findest
du unter <tomcat-root>/common/lib/ .
Du kannst die auch in deiner ide (meist unter projekt-eigenschaften) angeben (oder compiler-options - wo auch immer;) )
Jedenfalls brauchst du weder J2ME, JWSDK oder irgendein enterprise-beans-zeugs.
JDK und tomcat reicht aus ..... sofern du auch nur servletten oder jsp`s schreiben möchtest.
> Und dann? Kann man das auch als .deb umwandeln oder direkt in /usr/share/java installieren?
Am besten J2SE nach /usr/lib entpacken und das ganze dann verlinken:
ln -s /usr/lib/j2se-xxxx /usr/lib/java
Das verzeichnis /usr/lib/java/bin/ im $PATH aufnehemen oder die exec.-files einzeln nach /usr/bin/ verlinken.
Das wars ....
exakt so, wie "suntsu" schreibt .....
Wenn du beim compilieren eine ClassNotFoundException o.ä. fliegt, musste die fehlenden
klassen javax.servlet.* usw.dem compiler mitteilen. Die tomcat klassen (JAR`s) findest
du unter <tomcat-root>/common/lib/ .
Du kannst die auch in deiner ide (meist unter projekt-eigenschaften) angeben (oder compiler-options - wo auch immer;) )
Jedenfalls brauchst du weder J2ME, JWSDK oder irgendein enterprise-beans-zeugs.
JDK und tomcat reicht aus ..... sofern du auch nur servletten oder jsp`s schreiben möchtest.
> Und dann? Kann man das auch als .deb umwandeln oder direkt in /usr/share/java installieren?
Am besten J2SE nach /usr/lib entpacken und das ganze dann verlinken:
ln -s /usr/lib/j2se-xxxx /usr/lib/java
Das verzeichnis /usr/lib/java/bin/ im $PATH aufnehemen oder die exec.-files einzeln nach /usr/bin/ verlinken.
Das wars ....
- puddlejumper
- Beiträge: 58
- Registriert: 22.01.2005 00:29:52
Nur wenn es sich an die Unix Dateisystemstruktur hält. Da java alles andere tut, sollte es nach /opt. Dort gehörten Programme hin, die alles in einem eigenen Wurzelverzeichnis halten.puddlejumper hat geschrieben:Wenn Du etwas an dem Paket-Manger auf einer Maschiene vorbei installierst, würde ich das immer unter /usr/local packen..
Also ich habe wie oben erwähnt das SDK 1.4 direkt von Java und mit make-jpkg schön sauber in ein Debian-Packet umgewandelt. Die JVM und die anderen Executebles liegen jetzt in /usr/lib/j2sdk1.4-sun, die Klassen liegen unter /usr/share/java.
Also dachte ich packste das servlet.jar auch da rein oder erstellst ein Unter-Verzeichnis "javax" dort und legst es dort rein. Aber nix. Der Compiler findet es nicht.
<dumme Frage> muss ein Servlet vom Javac kompiliert werden? Oder macht das der Tomcat alleine? Kann ich mir ja nicht vorstellen. Und wie ist das mit J2EE? Da werden ja auch keine main Executebles erzeugt sondern Threats die von Bea oder Jboss aufgerufen werden!?!</dumme Frage>
Also dachte ich packste das servlet.jar auch da rein oder erstellst ein Unter-Verzeichnis "javax" dort und legst es dort rein. Aber nix. Der Compiler findet es nicht.
<dumme Frage> muss ein Servlet vom Javac kompiliert werden? Oder macht das der Tomcat alleine? Kann ich mir ja nicht vorstellen. Und wie ist das mit J2EE? Da werden ja auch keine main Executebles erzeugt sondern Threats die von Bea oder Jboss aufgerufen werden!?!</dumme Frage>
- finupsen
- Beiträge: 1327
- Registriert: 21.04.2004 20:07:05
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
hallo,
> Also dachte ich packste das servlet.jar auch da rein oder erstellst ein Unter-Verzeichnis "javax" dort und legst es dort rein. Aber nix.
Lass die doch dort, wo sie ist und teile deinem compiler mit wo sie liegt .
Du solltest auch unbedingt eine IDE besorgen, da du sonst die übersicht deiner jar`s (und deren pfade) verlieren wirst.
> muss ein Servlet vom Javac kompiliert werden?
ja, selbstverstandlich.
> Oder macht das der Tomcat alleine?
nein, tomcat kompiliert selbst nicht und verfügt auch nicht über ein hotdeploy wie etwa beim jboss, weblogic etc.
> Also dachte ich packste das servlet.jar auch da rein oder erstellst ein Unter-Verzeichnis "javax" dort und legst es dort rein. Aber nix.
Lass die doch dort, wo sie ist und teile deinem compiler mit wo sie liegt .
Du solltest auch unbedingt eine IDE besorgen, da du sonst die übersicht deiner jar`s (und deren pfade) verlieren wirst.
> muss ein Servlet vom Javac kompiliert werden?
ja, selbstverstandlich.
> Oder macht das der Tomcat alleine?
nein, tomcat kompiliert selbst nicht und verfügt auch nicht über ein hotdeploy wie etwa beim jboss, weblogic etc.
Ja aber das isses doch. Ich habe meinen Classpath auf /usr/lib/j2sdk1.4-sun:/usr/share/java:/usr/sharetomcat4/common/lib gesetzt.Lass die doch dort, wo sie ist und teile deinem compiler mit wo sie liegt .
Dort liegen reichlich servlet.jar's, aber keine von denen erkennt er. Habe ich was ausgelassen?
Brauche ich für Servlets in Eclipse einen eigenes Pluggin?Du solltest auch unbedingt eine IDE besorgen, da du sonst die übersicht deiner jar`s (und deren pfade) verlieren wirst.
Dank schonmal...
Gruss Christian
- finupsen
- Beiträge: 1327
- Registriert: 21.04.2004 20:07:05
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
hallo,
es ist ein unterschied, ob man den classpath so setzt:
/usr/lib/xyz/
oder
/usr/lib/xyz/servlet.jar
setzt.
Nochmal, du musst deinem compiler die jars mitteilen. Z.B. so:
javac -cp /usr/lib/java/lib/rt.jar meineklasse.java (als beispiel)
Und wie gesagt, IDE`s sind etwas komfortabler, denn da musste den compiler nicht per
console starten. In den optionen des compilers (project properties o.ä.) kannste so viele
JAR`s angeben wie du lust hast. Das sind grundlegende eigenschaften einer IDE, dafür
brauchste auch keine speziellen plugins.
es ist ein unterschied, ob man den classpath so setzt:
/usr/lib/xyz/
oder
/usr/lib/xyz/servlet.jar
setzt.
Nochmal, du musst deinem compiler die jars mitteilen. Z.B. so:
javac -cp /usr/lib/java/lib/rt.jar meineklasse.java (als beispiel)
Und wie gesagt, IDE`s sind etwas komfortabler, denn da musste den compiler nicht per
console starten. In den optionen des compilers (project properties o.ä.) kannste so viele
JAR`s angeben wie du lust hast. Das sind grundlegende eigenschaften einer IDE, dafür
brauchste auch keine speziellen plugins.
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.
... und Wasser ist naß.
EDIT: Mist war zu langsam
eine IDE ist nicht nötig aber praktisch
Du kannst, so mache ich das, Deinen Classpath über die .bashrc erweitern.
Du musst aber darauf achten, dass Du jedes (!) einzelne .jar/.zip File explizit angibst.
Verzeichnisse nützen nichts.
BSP:
Du kannst natürlich auch die Skript Idee weiter oben aufgreifen
gruss
eC
Hi,Christian Stalp hat geschrieben:/usr/lib/j2sdk1.4-sun:/usr/share/java:/usr/sharetomcat4/common/lib gesetzt.
Dort liegen reichlich servlet.jar's, aber keine von denen erkennt er. Habe ich was ausgelassen?
eine IDE ist nicht nötig aber praktisch
Du kannst, so mache ich das, Deinen Classpath über die .bashrc erweitern.
Du musst aber darauf achten, dass Du jedes (!) einzelne .jar/.zip File explizit angibst.
Verzeichnisse nützen nichts.
BSP:
Code: Alles auswählen
CLASSPATH=.:/usr/local/j2ee/lib/j2ee.jar:/usr/local/classes/classes12.zip:/usr/local/classes/mm.mysql-2.0.13-bin.jar
gruss
eC
- finupsen
- Beiträge: 1327
- Registriert: 21.04.2004 20:07:05
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
> Du kannst, so mache ich das, Deinen Classpath über die .bashrc erweitern.
Das geht, ist aber die denkbar schlechteste lösung.
Nochmal:
Zum compilieren den classpath mit der option -cp angeben (bzw. über die IDE)
Zum starten eines java-progis baut man sich ein startscript mit einer CLASSPATH-variable
mit einer überprüfung und ggfl. einer exit 1 meldung (jre not found o.ä.)
stell dir vor, $PATH liegt auf /usr/lib/jsdk-1.4/bin und $CLASSPATH auf /usr/lib/jsdk-1.5/....
was passiert ? ... bockmist
... oder du möchtest dein javaprogi jemand anders geben, nix funktioniert
... oder du möchtest eine jar (main in manifest) per mausklick starten, geht nicht, da kde nix von CLASSPATH weiss.
also man kann das machen, perönlich würde ich aber davon abraten ...
(nur meine meinung)
Das geht, ist aber die denkbar schlechteste lösung.
Nochmal:
Zum compilieren den classpath mit der option -cp angeben (bzw. über die IDE)
Zum starten eines java-progis baut man sich ein startscript mit einer CLASSPATH-variable
mit einer überprüfung und ggfl. einer exit 1 meldung (jre not found o.ä.)
stell dir vor, $PATH liegt auf /usr/lib/jsdk-1.4/bin und $CLASSPATH auf /usr/lib/jsdk-1.5/....
was passiert ? ... bockmist
... oder du möchtest dein javaprogi jemand anders geben, nix funktioniert
... oder du möchtest eine jar (main in manifest) per mausklick starten, geht nicht, da kde nix von CLASSPATH weiss.
also man kann das machen, perönlich würde ich aber davon abraten ...
(nur meine meinung)
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.
... und Wasser ist naß.
Gut dann lag bei mir ein Missverständnis vor. Ich dachte der Compiler kann direkt auf die jar-Packete in /usr/share/java zugreifen. Denn dort liegen schon ein ganzer Haufen von Jar's, die ich nicht selbst dort hin kopiert habe, sondern das von mir mit java-package erstellte Debian-Packet.
Aber nur mal interessehalber: WO liegen die Bibliotheken, die ich nicht extra refferenzieren muß ? Also die ganz normalen java.io-Klassen usw.?
Gruss Christian
Aber nur mal interessehalber: WO liegen die Bibliotheken, die ich nicht extra refferenzieren muß ? Also die ganz normalen java.io-Klassen usw.?
Gruss Christian
- finupsen
- Beiträge: 1327
- Registriert: 21.04.2004 20:07:05
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
hallo,
java.io ist IMHO in lib/rt.jar
aber ich bin irgendwie auf den geschmack gekommen und hab mir nun
auch mal den tomcat installiert
... dabei habe ich auch gleich mal die gelegenheit genutz ein kleine tut zuschreiben:
hier isset: http://212.184.10.254/tomcat.txt
vielleicht hilfts dir (oder jemand anders) ein wenig...
java.io ist IMHO in lib/rt.jar
aber ich bin irgendwie auf den geschmack gekommen und hab mir nun
auch mal den tomcat installiert
... dabei habe ich auch gleich mal die gelegenheit genutz ein kleine tut zuschreiben:
hier isset: http://212.184.10.254/tomcat.txt
vielleicht hilfts dir (oder jemand anders) ein wenig...
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.
... und Wasser ist naß.
Was ich noch herausgefunden habe ist, dass man weitere Jar-Bibliotheken einfach in das Verzeichnis .../jre/lib/ext reinkopiren kann, die dort dann ohne speziell refferenziert zu sein, eingelesen werden.
Wahrscheinlich ist das ein alter Hut, aber für mich ist das der Punkt warum ich dachte, die Jar-Bibliotheken die im Classpath abgelegt sind, werden ALLE automatisch erkannt und eingelesen.
Gruss Christian
Wahrscheinlich ist das ein alter Hut, aber für mich ist das der Punkt warum ich dachte, die Jar-Bibliotheken die im Classpath abgelegt sind, werden ALLE automatisch erkannt und eingelesen.
Gruss Christian