JSP-Script läuft nicht unter Tomcat, woran liegts?

  • Guten Morgen liebe Community,

    derzeit beschäftige ich mich mit Ajax in Verbindung mit JSP (nette Weihnachtslektüre dazu bekommen). Allerdings scheitere ich nun schon am ersten Beispiel des Buches. Es liegt aber weniger an der Syntax oder der Programmierung an sich, die sich m.E. sehr gut nachvollziehen lässt. Ich vermute, es gibt ein Problem mit der Tomcat-Installation, und somit kann das verwendete JSP-Script nicht ausgeführt werden.

    Der Aufbau der Sache ist recht simpel und sieht so aus:

    HTML-Dokument:

    Das Javascript test.js:

    Das JSP-Script das mit der Funktion open() aufgerufen wird:


    Als Fehlermeldung beim ausführen des Scripts bekomme ich das hier:
    org.apache.jasper.JasperException: /development/request.jsp(3,6) equal symbol expected
    und
    org.apache.jasper.JasperException: Unable to load class for JSP

    org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:599)

    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:137)

    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:314)

    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)

    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)

    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


    Da ich das Script selbst als fehlerfrei einschätze (entstammt ja mit kleinerer Modifikation dem Buch), schätze ich dass bei der Installation von Tomcat noch irgendetwas nicht richtig konfiguriert wurde, da die Klassen wohl nicht geladen werden können. Aber was fehlt? Habe bisher nur den Installer von Tomcat ausgeführt, und Tomcat gestartet. Die Startseite von Tomcat unter localhost:8080 wird einwandfrei angezeigt.

    Was muss ich noch konfigurieren, und wie kann ich den Rootfolder von Tomcat auf ein anderes Verzeichnis legen?
    Cool wäre auch noch zu wissen, wie ich das JSP auf meinem Webspace zum laufen bekomme, da erhalte ich nämlich den selben Fehler wie im Localhost.


    Vielen Dank für alle die sich das alles durchgelesen haben, und evtl. eine Lösung anzubieten haben!


    Grüße,
    Lizzard

    Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.

  • Erstmal Frohe Festtage,

    zunächst einmal würde mich interessieren, welchen IDE du benutzt. Unabhängig von Fehlermeldungen usw. würde ich dir empfehlen Netbeans zu benutzen, hierfür gibt es auch ein Plugin, dass sich "visual web application" nennt. Mit diesem kann man eigentlich alles machen.

    Falls du schon Netbeans nutzt, du musst in der Projektliste-> rechtsklick -> Eigenschaften -> Server einstellen, den du benutzen willst. Es kann aber sein, dass da bei deinem Code was net stimmt, will mich aber heute nicht da reinvertiefen.

    Generell würde ich dir aber sowieso zum Glasfish bzw. Applicaiton Server von Sun raten.

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Hi K.Y.L.T.,

    danke für deine rasche Antwort, im Moment benutze ich noch überhaupt keinen IDE, sondern lediglich einen normalen Editor (PSPad). Das Buch meint, dass man für diese JSP-Scripts die im Beispiel verwendet werden, keine IDE bräuchte, da es sich ja um clientseitige Scripte handelt, die auch nicht kompiliert werden müssen. Erst serverseitige Applets müssten laut dem Buch dann auch durch ein IDE laufen und kompiliert werden.
    Ich hoffe ich liege da richtig, weil ich nicht hoffe, dass mich das Buch belügt ;)

    Aber ich lade gerade Netbeans herunter, und werde dann mal sehen wie es mit der Ausführbarkeit in Glasfish aussieht, ich melde mich sobald es Neuigkeiten gibt.


    Vielen Dank soweit schonmal für deine Hilfe!


    EDIT:
    Habe Netbeans jetzt installiert, und da scheint sich auch gleich der Fehler zu zeigen.
    Es scheint so, als könnte mein Script nicht auf den Konstruktor Integer() und die Funktion intValue() zugreifen... :?

    Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.

  • Natürlich ist JS clientseitig, damit du die Daten aber auch serverseitig verwenden kannst (willst sie ja letztendlich weiterverarbeiten) solltest du dich mit dem IDE beschäftigen, wir arbeiten zum Beispiel mit Netbeans in der Firma.

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Edit :Sorry fürs doppelposting: dachte ich hätt den Editbutten erwischt :-/


    Also hier fehlt schonmal eine normale Klammerzu

    switch(new Integer(request.getParameter("wo").intValue())) {

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Danke für den Hinweis, die Sache mit der Klammer hat schonmal das ursprüngliche Fehlerchen beseitigt.
    Nun sieht das ganze wie folgt aus (siehe Anhang).
    Irgendeine Ahnung wie ich das beseitigen kann? Ich habe den Eindruck, dass mein Script nicht auf die ganz gewöhnlichen Standard-Funktionsbibliotheken zugreifen kann...

    Bilder

    Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.

  • Du darfst bei der Initialisierung in Java nicht in einem Schritt nen Methodenaufruf machen, du kannst

    int i = new Integer("1");

    i = i.intValue();

    setzen aber nicht in einem Schritt.

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Danke für deine kompetente Hilfe KYLT,

    ich habe mit deinem Ansatz noch einmal ein wenig weiter gekuckt, bin auf zwei Sachen gestoßen (nur der Vollständigkeit halber):

    Dein neuer Ansatz funktioniert nicht, da Primitives wie Ints den .-Operator nicht beherrschen.
    Der Methodenaufruf in der switch()-Anweisung funktioniert, allerdings muss dazu die Klammer, die du vorhin folgerichtig ergänzt hast, bereits nach dem Konstruktor new Integer() folgen:

    switch(new Integer(request.getParameter("wo")).intValue()) {


    Auf jeden Fall läuft das Skript jetzt, es schien wohl doch ein Vertipper meinerseits gewesen zu sein -.-

    Das Java sieht nun so aus und läuft fehlerfrei:

    Die korrekte Ausgabe wurde zudem noch verhindert im test.js, da hier

    statt
    document.getElementById("hs").innerHTML = resObjekt.responseText;

    dass hier:


    document.getElementById("hs").innerHtml = resObjekt.responseText;

    notiert war.


    Nochmal vielen Dank für die Hilfe!

    Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.