Probleme beim Servlet erstellen + Fragen

kle-ben

Erfahrenes Mitglied
Hi,
ich versuch gerade ein Servlet zu erstellen hab da aber eingige Probleme.


Was ich bis jetzt gemacht hab : ( siehe Bild-Anhang )
File->New Project->Tomcat Project
Dann in den Ordner WEB-INF/src ein Packege servlet und ein e Klasse ITServlet.
Jetzt hab in der ServerView einen neuen Server angelegt und versucht dem mein
Servlet hinzuzufügen. Aber das geht nicht, bekomme folgenden Fehler :

java.lang.NoClassDefFoundError: org/apache/catalina/startup/Bootstrap
Exception in thread "main"

Dann hab ich auch noch eine web.xml angelegt weil ich gelesen hab das man
die braucht.
Meine sieht so aus:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
    <servlet> 
        <servlet-name>myservlet</servlet-name>
        <servlet-class>servlet.ITServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>myservlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>
Ist das soweit richtig ?
Dann ist da noch ein Servers-Projekt was vorher nicht da war.( auch auf dem Bild )
Wurde das angelegt als ich ein TomcatProjekt erzeugt hab, oder kommt das daher das ich den Tomcat gerade zuvor eingerichtet hab Hab da leider nicht drauf geachtet.
Hat das was mit meinem Servlet zu tun?

Ich hab gesehn das man unter new auch direkt ein Servlet erstellen kann.
Hat das irgendwelche vorteile ? Als ich es versucht habe hat es nicht funktioniert
weil ich es meinem Tomcat-Project nicht zuordnen konnte.

Benny
 

Anhänge

  • directory.jpg
    directory.jpg
    31,8 KB · Aufrufe: 28
Also ich hab jetzt mal ein Webprojekt erstellt und dann
mein Servlet da rein getan. Nun kan ich das auch einem
Server zuordnen. Leider kann ich immer noch nicht drauf
zugreifen. Meine web.xml sieht jetzt so aus:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>
    WebServlet</display-name>
    <servlet>
        <description>
        </description>
        <display-name>
        ITServlet</display-name>
        <servlet-name>ITServlet</servlet-name>
        <servlet-class>
        it.servlet.ITServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ITServlet</servlet-name>
        <url-pattern>/ITServlet</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
</web-app>

Kann mir jemand sagen wieich jetzt mein Servlet ansprechen kann?

Benny
 
Hi,
ich hab jetzt beide Varianten ausprobiert:
1. Standard-Servlet-Mapping : conf/web.xml -> freischalten.
2. WEB-INF/web.xml

und keine funktioniert.

Zuvor steht da noch das ich das Servlet in das classes verzeichnis bringen soll.
Wenn ich unter WEB-INF einen Ordner classes und einen Ordner src erstelle kann
ich da aber meine Servlet nicht reinschieben.
Liegt das daran das ich in mienem Projekt ein Source-Folder hab ?

Danke schon mal,

Gruß Benny
 
moin,

dein ServletIT Projekt ist wirklich irgendwie nicht richtig aufgebaut. 'src' hat in WEB-INF nichts zu suchen. Versuche dein Projekt noch mal anlegen. Im Grunde genommen, wenn du mit Eclipse alles richtig machst, dann muss dein Deploy auch o.k sein.

Wenn weiterhin dein Servlet nicht läuft, dann zeige bitte hier, wie dein deploy aussieht und was Server da mekart.
Ah, was für Server verwendest du? Nur Tomcat?

:)
 
Morgen.

Also mein Verzeichnis sieht so aus wie im Anhang.
( Hab nur noch mal ein paar Sachen umgenannt )

Das steht im tollen Insel Buch auf das du oben verlinkt hast:
Beispiel Arbeiten wir mit einem Eclipse-Plugin, müssen wir uns um diese Probleme nicht kümmern. Wie legen einfach das Servlet unter WEB-INF/src ab, und es wird somit automatisch unter WEB-INF/classes compiliert.
Ich hab diese Ordner auch garnicht.

Ich hab in der web.xml von meinem Tomcat 5.5 die Auskommentierung
von diesen beiden Blöcken gemacht:
Code:
 <servlet>
        <servlet-name>invoker</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.InvokerServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
</servlet>

Code:
<servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>

Und dann hab ich versucht das Servlet wie folgt aufzurufen:
http://localhost:8080/jt/servlet/it.servlet.MyServlet

Dann bekomm ich von meinem Tomcat ein 404 not available zurück.

Wenn ich jetzt die Selben Blöcke in der web.xml von dem
Servers-Projekt ( das ich nicht weis wo es herkommt ) freischalte
hat das genau den selben Effekt.
Kann das sein das dieses Servers Projekt angelegt wurde als ich
in der Server-View von Eclipse einen neuen Server instanziiert hab,
und das diese Konfigurationsdateien in dem Projekt genau für
den gelten? Weil die sind unabhängig von den xml Dateien im
conf Ordner meines Tomcats.

Dann hab ich mit der web.xml aus meinem WEB-INF Ordner
versucht das Servlet über :
http://localhost:8080/jt/it.servlet.MyServlet
zu starten. Aber ich bekomme ebenfalls ein 404 not available zurück.

Benny
 

Anhänge

  • servletdir.JPG
    servletdir.JPG
    14,4 KB · Aufrufe: 18
Hallo,

hast du mal so versucht dein Servlet aufzurufen.
Code:
http://localhost:8080/NameDesProjektordners/ITServlet

So müsste es funktionieren. Also der Name das Projekt ordners ist der Name des Ordners in deinem Web-App-Verzeichnis.

MFG

zEriX
 
Hi,
Es funktioniert endlich danke euch beiden !!

Aber eine Frage hab ich noch:
Liegt das jetzt an der web.xml in meinem Projekt oder
an den Einstellungen an in meinem Tomcat das ich das so
aufrufen kann?

Danke,

Gruß Benny.
 

Neue Beiträge

Zurück